System
UI Mockup — Halaman Login
bengkelpintar.app/login
BP
Bengkel Pintar
Masuk ke akun Anda
Email / Username
admin@bengkelpintar.app
Password
••••••••••
Ingat saya
Lupa password?
Masuk
bengkelpintar.app/admin/audit-log
Dashboard
Audit Log
Sesi Aktif
Audit Trail
Super Admin
WaktuUserAksiIPStatus
09:14:22admin@...LOGIN180.252.x.xOK
09:18:05kasir@...LOGIN180.252.x.xOK
09:22:31mekanik1@...LOGIN192.168.x.xOK
09:45:18unknownLOGIN_FAIL103.x.x.xFAIL
10:02:44admin@...LOGOUT180.252.x.xOK
Flow Diagram — Authentication Flow

Login & Session Management

Alur autentikasi menggunakan Laravel Sanctum + Next.js

flowchart TD A([User: Buka\nHalaman Login]) --> B[Input Email\n& Password] B --> C[Frontend: POST\n/api/auth/login] C --> D[Backend: Validasi\nKredensial] D --> E{Valid?} E -->|Tidak| F[Return 401\nTampil Error] F --> B E -->|Ya| G[Cek Status\nUser Aktif?] G -->|Non-Aktif| H[Return 403\nAkun Dinonaktifkan] G -->|Aktif| I[Generate Sanctum\nAPI Token] I --> J[Set httpOnly Cookie\nRefresh Token] J --> K[Return Access Token\n+ User Data + Role] K --> L[Frontend: Store Token\ndi Memory] L --> M[Redirect ke\nDashboard sesuai Role] M --> N{Sesi Aktif} N -->|Request API| O[Attach Bearer Token\ndi Header] O --> P[Backend Validasi\nToken & Permission] P -->|Valid| Q[Proses Request] P -->|Invalid/Expired| R[Return 401] R --> S[Frontend: Auto Refresh\nToken via httpOnly Cookie] S -->|Berhasil| O S -->|Gagal / Expired| A N -->|Logout| T[POST /api/auth/logout\nRevoke Token] T --> A style A fill:#dbeafe,stroke:#3b82f6 style M fill:#dcfce7,stroke:#16a34a style F fill:#fee2e2,stroke:#ef4444 style H fill:#fee2e2,stroke:#ef4444
Keamanan & Konfigurasi

🔑 Token Management

  • Access token expire: 15 menit
  • Refresh token expire: 7 hari (httpOnly cookie)
  • Token di-revoke saat logout
  • Token berbeda untuk setiap device/session

🛡 Proteksi Brute Force

  • Lockout setelah 5x gagal login (15 menit)
  • Rate limiting pada endpoint login
  • IP suspicious dicatat dan bisa di-block
  • Alert ke Super Admin jika anomali terdeteksi

📱 Multi Device

  • User bisa login dari beberapa device
  • Super Admin bisa revoke sesi spesifik
  • Daftar sesi aktif terlihat di profil user
  • "Logout from all devices" tersedia

📋 Audit Trail

  • Semua login/logout/gagal login tercatat
  • IP address dan user-agent tersimpan
  • Retensi audit log: 90 hari
  • Hanya Super Admin yang bisa akses audit log