Lewati ke konten utama

Sudo Mode (Access Confirmation)

Sudo Mode adalah fitur keamanan yang mengharuskan pengguna memverifikasi identitas mereka (dengan memasukkan password) sebelum melakukan tindakan sensitif di dalam aplikasi, meskipun mereka sudah berada dalam keadaan login.

Contoh tindakan sensitif:

  • Mengaktifkan / Mematikan Two-Factor Authentication (2FA)
  • Menghapus sumber daya (Server/Database) secara permanen
  • Melihat atau membuat API Token baru

Alur Konfirmasi Akses


Integrasi API untuk Sudo Mode

Step 1: Meminta Token Sudo

Ketika pengguna melakukan tindakan yang diblokir oleh Backend karena butuh verifikasi Sudo, Frontend memunculkan dialog peringatan untuk memasukkan password.

Request
POST /api/auth/access-confirmation
Content-Type: application/json
Request Body
{
"password": "PasswordLamaSaatIni123!"
}

Kondisi & Tindakan:

  • Sukses (200 OK): Password benar. Backend mengembalikan JSON berisi Token khusus Sudo:
    {
    "message": "Access confirmed",
    "access_token": "sudo_eyJhbGciOiJIUzI1..."
    }
    FE harus menyalin nilai access_token ini.
  • Error (400 Bad Request): Password salah. Tampilkan pesan kesalahan di modal dialog tersebut.

Step 2: Melanjutkan Tindakan Sensitif

Frontend mengulangi pemanggilan API sensitif yang tadinya diblokir, namun kali ini menyisipkan header X-Access-Token berisi token yang didapat dari Step 1.

Request (Contoh Pemanggilan Tindakan Sensitif)
POST /api/auth/profile/2fa/disable
X-Access-Token: sudo_eyJhbGciOiJIUzI1...
Content-Type: application/json

Catatan Penting: Token Sudo Mode biasanya hanya memiliki umur (expiry time) yang sangat singkat (misal: 15 hingga 30 menit). Jika kedaluwarsa, Frontend harus mengulang kembali pemanggilan POST /api/auth/access-confirmation.