User Session & Security Management
Di dalam aplikasi Backoffice (Admin Panel), Administrator ditugaskan untuk menjaga keamanan akun Customer. Fitur di halaman ini memungkinkan Admin untuk mencabut akses perangkat yang mencurigakan, mengatur batasan jumlah perangkat (Max Device Session), hingga mematikan fitur otentikasi ganda (2FA) jika Customer terkunci dari akun mereka sendiri.
Diagram Pencabutan Sesi Darurat
1. Melihat Sesi Perangkat Aktif (Device Sessions)
Admin dapat melihat di perangkat atau browser mana saja seorang pengguna sedang dalam keadaan login.
GET /api/backoffice/customer/{id}/device-sessions
(Ganti {id} dengan ID Customer)
Respons (200 OK): Backend akan mengembalikan array berisi informasi sesi aktif (misalnya: ID Sesi, Alamat IP, User-Agent/Browser, dan Waktu Akses Terakhir). Frontend Backoffice dapat menampilkan data ini ke dalam bentuk Tabel.
2. Mencabut / Menghapus Sesi (Revoke Session)
Admin dapat menendang paksa (membuat logout) sebuah sesi secara spesifik jika dicurigai adanya intrusi.
DELETE /api/backoffice/customer/{id}/device-sessions/{sid}
{id}: ID Customer.{sid}: ID Sesi (Device Session ID) spesifik yang didapat dari tabel pada Poin 1. (Tips: Anda dapat mengganti{sid}dengan string khususalluntuk langsung menendang keluar Customer dari semua perangkat secara serentak).
Kondisi & Tindakan:
- Sukses (200 OK): Sesi dihapus dari database/redis. Pada permintaan (request) API Customer berikutnya, JWT mereka akan ditolak dan mereka akan dipaksa logout. Refresh tabel pada UI Backoffice Anda.
3. Mengubah Batas Maksimal Perangkat (Max Device Session)
Setiap pengguna memiliki batasan jumlah perangkat yang boleh masuk dalam waktu bersamaan (misal: hanya 3 perangkat). Admin dapat mengubah limit ini.
PATCH /api/backoffice/auth/device-session/update
Content-Type: application/json
{
"customer_id": 12,
"max_session": 5
}
Kondisi & Tindakan:
- Sukses (200 OK): Batasan kuota perangkat telah diubah.
4. Menonaktifkan 2FA Secara Paksa (Force Disable)
Ini adalah fitur bantuan darurat (support). Jika seorang Customer kehilangan akses ke aplikasi Authenticator mereka dan Recovery Codes mereka juga hilang, Admin yang memiliki wewenang dapat mematikan (men-disable) fitur 2FA secara sepihak agar Customer tersebut bisa masuk ke akunnya hanya menggunakan email dan password.
PATCH /api/backoffice/2fa/force-disable
Content-Type: application/json
{
"customer_id": 12,
"reason": "Customer kehilangan ponsel, verifikasi identitas melalui KTP berhasil dilakukan via telepon."
}
(Sangat disarankan bagi Frontend Backoffice untuk memunculkan modal/dialog konfirmasi yang mewajibkan Admin mengetikkan alasan (reason) pencabutan 2FA demi keperluan Audit Trail).
Kondisi & Tindakan:
- Sukses (200 OK): 2FA dimatikan. Customer sekarang bisa login seperti biasa tanpa diminta memasukkan 6-digit TOTP.