Lewati ke konten utama

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.

Request
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.

Request
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 khusus all untuk 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.

Request
PATCH /api/backoffice/auth/device-session/update
Content-Type: application/json
Request Body
{
"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.

Request
PATCH /api/backoffice/2fa/force-disable
Content-Type: application/json
Request Body
{
"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.