POST/api/auth/reset-password

Đặt lại mật khẩu bằng mã đặt lại hợp lệ.

`POST /api/auth/reset-password` đặt lại mật khẩu bằng cách sử dụng một Token đặt lại hợp lệ. Tuyến này không yêu cầu đăng nhập hiện có, vì nó dành cho những người dùng không thể sử dụng mật khẩu trước đây nữa. Trong Request-Body, các trường `token` và `password` được gửi đi. Token đến từ email đặt lại đã được gửi trước đó; mật khẩu mới phải đáp ứng các yêu cầu tối thiểu do máy chủ quy định. Lệnh gọi này không có tính idempotent. Sau khi đặt lại thành công, Token được sử dụng đã bị tiêu thụ và không còn được dự kiến cho việc thay đổi mật khẩu lần nữa. Do đó, Client không được lặp lại một Request bị gián đoạn không rõ ràng trong một vòng lặp nhanh. Thay vào đó, nó nên hiển thị kết quả và cho phép người dùng khởi động lại quy trình đặt lại mật khẩu mới qua chức năng Quên mật khẩu nếu cần. Một Token không hợp lệ, đã hết hạn hoặc đã được sử dụng, cùng với một mật khẩu không đáp ứng các yêu cầu tối thiểu, sẽ dẫn đến lỗi `400 VALIDATION_ERROR`. Thông báo lỗi công khai không được tiết lộ thêm bất kỳ chi tiết tài khoản nào. Token và mật khẩu mới không được xuất hiện trong các tham số URL, công cụ phân tích, nhật ký công khai hoặc ảnh chụp màn hình hỗ trợ. Request chỉ thuộc về quy trình biểu mẫu được bảo vệ bởi HTTPS. Một phản hồi thành công là `{"ok":true}`. Nó xác nhận việc thay đổi mật khẩu đã thực hiện, không tự động là đăng nhập mới. Sau khi đặt lại, người dùng nên đăng nhập bình thường bằng mật khẩu mới. Các phiên làm việc hiện có sẽ được xử lý theo logic thực tế của Backend; tài liệu không được khẳng định việc đăng xuất tất cả thiết bị một cách chung chung nếu điều này không được chứng minh. Kiểm thử trực tiếp đã thực hiện bao gồm trường hợp tiêu cực với một Token không hợp lệ và trạng thái dự kiến 400. Một lần đặt lại thành công thực tế không được thực hiện riêng biệt bằng một Token sản xuất cho bằng chứng này. Văn bản phải duy trì rõ ràng ranh giới này và không được suy ra bất kỳ thành công End-to-End nào từ sự tương đồng với Đăng nhập hoặc Quên mật khẩu.

Xác thực & bảo mật

Không cần xác thực

Lũy đẳng (idempotent): Không

Tham số

token(body, string, bắt buộc)— Mã đặt lại từ email
password(body, string, bắt buộc)— Mật khẩu mới

Request mẫu

{"token":"<Token từ email đặt lại mật khẩu>","password":"MatKhauMoiAnToan!"}

Response mẫu

{"ok":true}

Mã lỗi

400 VALIDATION_ERROR — Mã không hợp lệ, đã hết hạn hoặc mật khẩu không đáp ứng yêu cầu tối thiểu.

Bằng chứng kiểm thử trực tiếp

Trường hợp lỗi (400, token không hợp lệ) đã được xác minh trực tuyến; trường hợp thành công về cơ chế giống hệt forgot-password/login, nhưng không được chạy riêng với Reset-Token thật.

← Xác thực