/authentication/password
Endpoint untuk reset password pengguna yang lupa password.
POST /authentication/password
Deskripsi: Mengirim kode reset password ke email pengguna.
Request Body
json
{
"email": "user@example.com"
}Response Sukses (200)
json
{
"status": "success",
"message": "Kode reset password berhasil dikirim melalui email"
}Response Error
400 - Bad Request
json
{
"status": "fail",
"message": "Email harus diisi"
}404 - Not Found
json
{
"status": "fail",
"message": "Email tidak ditemukan"
}500 - Internal Server Error
json
{
"status": "error",
"message": "Internal server error"
}json
{
"status": "error",
"message": "Gagal mengirim email"
}POST /authentication/password/verify
Deskripsi: Memverifikasi kode reset password yang dikirim melalui email.
Request Body
json
{
"email": "user@example.com",
"resetCode": "123456"
}Response Sukses (200)
json
{
"status": "success",
"message": "Reset code verified"
}Response Error
400 - Bad Request
json
{
"status": "fail",
"message": "Invalid reset code"
}json
{
"status": "fail",
"message": "Email dan kode reset harus diisi"
}500 - Internal Server Error
json
{
"status": "error",
"message": "Internal server error"
}PUT /authentication/password
Deskripsi: Mereset password dengan kode verifikasi yang telah diverifikasi.
Request Body
json
{
"email": "user@example.com",
"resetCode": "123456",
"newPassword": "newSecurePassword123",
"confirmPassword": "newSecurePassword123"
}Response Sukses (200)
json
{
"status": "success",
"message": "Password berhasil direset"
}Response Error
400 - Bad Request
json
{
"status": "fail",
"message": "Password baru dan konfirmasi password tidak cocok"
}json
{
"status": "fail",
"message": "Kode reset tidak valid atau sudah kadaluarsa"
}json
{
"status": "fail",
"message": "Semua field harus diisi"
}500 - Internal Server Error
json
{
"status": "error",
"message": "Internal server error"
}Flow Reset Password
- Pengguna lupa password → Panggil
POST /authentication/passworddengan email - Sistem mengirim email → Email berisi kode 6 digit dengan masa berlaku 5 menit
- Verifikasi kode → Panggil
POST /authentication/password/verifydengan email dan kode - Reset password → Panggil
PUT /authentication/passworddengan email, kode, dan password baru - Password berhasil direset → Pengguna dapat login dengan password baru
Catatan Keamanan
- Kode reset hanya berlaku selama 5 menit
- Kode reset adalah 6 digit angka acak
- Setelah password berhasil direset, kode reset akan dihapus dari database
- Email reset akan dikirim menggunakan SMTP Gmail yang dikonfigurasi di environment variables