Admin Login Flow
Dokumentasi ini menjelaskan urutan proses dan pemanggilan API yang dibutuhkan oleh Frontend Backoffice untuk mengautentikasi dan mengelola sesi pengguna Admin.
Diagram Alur Login Admin
Visualisasi di bawah ini menjelaskan tahapan masuknya Admin ke sistem, termasuk skenario bila Two-Factor Authentication (2FA) atau OTP Perangkat Baru terpicu.
Urutan Integrasi API untuk Frontend
Step 1: Validasi Kredensial
Admin memasukkan kredensial Email dan Password pada form login yang disediakan.
POST /api/backoffice/auth/login
Content-Type: application/json
{
"email": "admin@frogcloud.com",
"password": "PasswordAdminKuat123!"
}
Kondisi & Tindakan:
- Kondisi A (Langsung Sukses / 200 OK): Backend menerima kredensial yang tepat dan langsung mengatur Cookies sesi admin (HTTP-Only). FE dapat segera me-redirect Admin ke
/dashboard. - Kondisi B (Butuh OTP / 2FA / 200 OK): Backend akan mengembalikan respons yang mendeskripsikan bahwa OTP diperlukan. Hal ini terjadi bila 2FA wajib bagi Admin, atau Admin masuk dari perangkat baru. FE tidak boleh melakukan redirect, melainkan harus menampilkan antarmuka input OTP.
- Kondisi C (Error / 400 / 401): Kredensial tidak cocok atau akun dikunci. FE bertugas menampilkan teks pesan error.
Step 2 (Kondisional): Verifikasi Kode OTP
Jika berada di Kondisi B pada Step 1, sistem Backend otomatis mengirimkan OTP ke email Admin. Kode ini harus dikirimkan kembali ke Backend untuk penyelesaian sesi.
POST /api/backoffice/auth/otp/verify
Content-Type: application/json
{
"email": "admin@frogcloud.com",
"code": "123456"
}
Kondisi & Tindakan:
- Sukses (200 OK): OTP benar. Backend mencetak Cookies otentikasi. FE me-redirect Admin ke
/dashboard. - Error (400 Bad Request): OTP salah atau masa berlakunya telah usai. FE harus menampilkan peringatan agar Admin mengisi kode dengan benar atau meminta ulang kode.
Manajemen OTP (Resend & Timer)
Untuk menghindari spam pengiriman email, Backend mengimplementasikan jeda waktu (misal: 60 detik) sebelum Admin bisa meminta OTP baru. Frontend harus menampilkan Countdown Timer (Hitung Mundur).
Mendapatkan Sisa Waktu (Remaining Time)
GET /api/backoffice/auth/otp/remaining
Respons (200 OK): Mengembalikan "remaining_seconds": 45. FE menggunakan angka ini untuk memulai hitung mundur 00:45.
Meminta Ulang OTP (Resend)
Jika sisa waktu sudah 0, Admin bisa menekan tombol "Kirim Ulang Kode".
POST /api/backoffice/auth/otp/request
Content-Type: application/json
{
"email": "admin@frogcloud.com"
}