Change Password Flow
Dokumentasi ini menjelaskan urutan proses yang dibutuhkan oleh Frontend ketika pengguna (Customer) yang sudah dalam keadaan login ingin mengganti password lama mereka dengan yang baru melalui menu Profil atau Pengaturan Keamanan.
Untuk mencegah pengambilalihan akun secara paksa, penggantian password di Frog Cloud mewajibkan validasi ganda, yakni konfirmasi kepemilikan email melalui pengiriman Token, serta validasi Password Lama.
Diagram Alur Ganti Password
Berikut adalah visualisasi interaksi antara Frontend dan Backend.
Urutan Integrasi API untuk Frontend
Step 1: Meminta Token Konfirmasi (Request)
Saat pengguna ingin mengganti password, Frontend sebaiknya memanggil API Request terlebih dahulu untuk memicu pengiriman kode Token ke email pengguna.
POST /api/auth/profile/change-password/request
Content-Type: application/json
{
"email": "customer@frogcloud.com"
}
Catatan Autentikasi: API ini (beserta API pada Step 2) adalah jalur internal/privat. Ini berarti browser harus secara otomatis mengirimkan
Cookiesotentikasi (JWT) yang didapat saat pengguna login.
Kondisi & Tindakan:
- Sukses (200 OK): Backend berhasil memproses permintaan dan mengirimkan pesan ke email. FE harus merespons dengan menampilkan antarmuka form yang meminta Token, Password Lama, dan Password Baru.
- Error (400/401): Jika sesi JWT habis atau hilang (401), paksa pengguna untuk keluar (force logout) ke halaman login utama. Jika 400, tampilkan toast/snackbar peringatan.
Step 2: Eksekusi Penggantian (Proceed)
Pengguna diminta memeriksa inbox email mereka untuk mendapatkan Token, lalu memasukkannya bersama dengan password lama dan password baru. Tidak diperlukan mode Sudo tambahan karena parameter old_password sudah mengkonfirmasi ulang identitas pengguna.
PATCH /api/auth/profile/change-password/proceed
Content-Type: application/json
{
"token": "64_karakter_token_hex_dari_email",
"old_password": "PasswordLamaSaatIni123!",
"new_password": "PasswordBaruKuat123!"
}
Kondisi & Tindakan:
- Sukses (200 OK): Password berhasil diubah dan diterapkan ke dalam sistem. FE dapat menampilkan notifikasi sukses visual (misal: "Password berhasil diperbarui!") dan menutup form. Sesi pengguna tidak akan terputus.
- Error (400 Bad Request): Terdapat beberapa kemungkinan titik kegagalan yang pesannya harus ditangkap dan ditampilkan oleh Frontend:
- Token Salah / Kadaluarsa: Tampilkan peringatan "Token/Kode tidak valid".
- Password Lama Salah: Tampilkan peringatan di bawah input password lama ("Password saat ini tidak cocok").
- Password Baru Lemah: Tampilkan pesan syarat kerumitan, misal panjang minimal 8 karakter belum terpenuhi.