HRMNhân viên

Khôi phục tài khoản

Quy trình khôi phục mật khẩu bao gồm khởi tạo xác thực và cập nhật mật khẩu mới.

1. Khởi tạo khôi phục mật khẩu

Gửi mã xác thực OTP đến email người dùng để bắt đầu quy trình khôi phục mật khẩu. Mã OTP gồm 6 chữ số và có hiệu lực trong 5 phút (date_expired).

Để không lộ email nào đã có tài khoản, response luôn giống nhau dù email có tài khoản hay không (cùng HTTP 200, cùng các trường, full_name luôn rỗng). Email chỉ được gửi khi có tài khoản; với email chưa có tài khoản, mọi mã OTP nhập vào đều bị từ chối error_otp_invalid. Nhập sai OTP 5 lần thì passport bị huỷ (error_passport_otp_not_found), phải gọi lại recoveryinit.

Endpoint

POST /v1/users/recoveryinit

Body Parameters

TênKiểuBắt buộcMô tả
emailstringCóEmail người dùng

Response Schema

{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "passport_id": "8c6600c3-...",
  "full_name": "",
  "email": "[email protected]",
  "otp_length": 6,
  "date_created": 1640995200,
  "date_expired": 1640995500,
  "metadata": {
    "action": "recovery"
  }
}

2. Hoàn tất khôi phục mật khẩu

Xác thực OTP và thiết lập mật khẩu mới cho tài khoản.

Endpoint

POST /v1/users/recoveryfinish

Body Parameters

TênKiểuBắt buộcMô tả
emailstringCóEmail người dùng
passwordstringCóMật khẩu mới (tối thiểu 8 ký tự)
otpstringCóMã OTP nhận được qua email
passport_idstringCóID passport nhận được từ bước Init

Response Schema

Trả về object User của người dùng đã được cập nhật mật khẩu.


Error Codes

HTTPCodeMô tả
422error_email_requiredThiếu email
422error_email_invalidĐịnh dạng email không hợp lệ
422error_password_length_invalidMật khẩu quá ngắn
422error_passport_id_requiredThiếu ID passport
422error_otp_requiredThiếu mã OTP
422error_passport_otp_not_foundOTP đã hết hạn, không tồn tại hoặc đã bị huỷ do nhập sai quá 5 lần
422error_otp_invalidMã OTP không chính xác (kể cả khi email chưa có tài khoản)
500error_save_passportLỗi lưu trữ thông tin xác thực
500error_update_passwordLỗi khi cập nhật mật khẩu mới

On this page