> ## Documentation Index
> Fetch the complete documentation index at: https://tomotek.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# US-MER-CLI-17: Quên mật khẩu và Đặt lại mật khẩu

> Đối tác lấy lại quyền truy cập tài khoản bằng cách nhận đường dẫn (link) khôi phục qua Email và thiết lập mật khẩu mới.

## 1. Điều kiện tiên quyết (Pre-conditions)

* Người dùng là Merchant hoặc Clinic đã đăng ký tài khoản hợp lệ trên hệ thống ILU PET Partner.
* Tài khoản chưa bị khóa vĩnh viễn (Banned).
* Người dùng đang ở màn hình Đăng nhập và chọn chức năng "Quên mật khẩu".

## 2. Tiêu chí chấp nhận (Acceptance Criteria)

> **1. Yêu cầu khôi phục mật khẩu**
>
> * **Hiển thị Form:** Yêu cầu người dùng nhập **Email quản trị** đã đăng ký tài khoản.
> * **Kiểm tra hợp lệ (Validation):**
>   * Nếu Email trống hoặc sai định dạng: Báo lỗi *"Vui lòng nhập Email hợp lệ."*
>   * Nếu Email chưa được đăng ký trong hệ thống Partner: Báo lỗi *"Không tìm thấy tài khoản liên kết với Email này."*
> * **Xử lý:** Khi thỏa mãn điều kiện, hệ thống sẽ tạo một mã Token bảo mật có thời hạn (VD: 15 phút) và gửi một Email chứa Link khôi phục đến địa chỉ Email vừa nhập.
> * **Thông báo:** Hiển thị màn hình thành công *"Chúng tôi đã gửi một đường dẫn khôi phục đến Email của bạn. Vui lòng kiểm tra hộp thư đến (hoặc thư mục Spam)."*

> **2. Nhận Link và Điều hướng**
>
> * **Email Format:** Tiêu đề Email rõ ràng (Ví dụ: `[ILU PET] Đặt lại mật khẩu tài khoản Đối tác`). Nội dung chứa nút bấm hoặc Link: **"Thiết lập mật khẩu mới"**.
> * **Validation Link (Khi nhấp vào link):**
>   * Nếu Token đã hết hạn (quá 15 phút): Hệ thống chuyển hướng đến trang báo lỗi *"Đường dẫn khôi phục đã hết hạn. Vui lòng thực hiện lại yêu cầu."*
>   * Nếu Token đã được sử dụng trước đó: Báo lỗi *"Đường dẫn này không còn hiệu lực."*
>   * Nếu Token hợp lệ: Hệ thống chuyển hướng đối tác đến thẳng **Trang Thiết lập mật khẩu mới** trên nền tảng quản trị.

> **3. Thiết lập mật khẩu mới**
>
> * **Giao diện:** Hiển thị 2 trường nhập liệu: `Mật khẩu mới` và `Xác nhận mật khẩu mới`.
> * **Điều kiện mật khẩu (Password Policy):** Mật khẩu tối thiểu 8 ký tự, phải bao gồm ít nhất chữ hoa, chữ thường và số. Có hỗ trợ icon hình "Con mắt" để ẩn/hiện mật khẩu.
> * **Xác thực khớp chuỗi:** Nếu `Xác nhận mật khẩu mới` không khớp với `Mật khẩu mới`, hiển thị lỗi realtime: *"Mật khẩu xác nhận không khớp."*
> * **Cập nhật:** Khi người dùng nhấn nút **"Lưu mật khẩu"**, hệ thống mã hóa và lưu mật khẩu mới vào cơ sở dữ liệu. Vô hiệu hóa ngay lập tức Token cũ (Mỗi Link chỉ dùng 1 lần duy nhất).
> * **Kết thúc luồng:** Tự động điều hướng người dùng về lại trang Đăng nhập hệ thống kèm thông báo Alert: *"Đổi mật khẩu thành công. Vui lòng đăng nhập lại để tiếp tục."*


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.