Bỏ qua để đến nội dung

Đăng nhập và quyền truy cập

import { Card, CardGrid, Steps, Aside } from ‘@astrojs/starlight/components’;

Đăng nhập Thu ngân (/cashier-login) là màn đăng nhập riêng cho nhân viên, mở tự động khi khởi động Vendor Desktop (ứng dụng Electron trên PC quầy). Màn này chỉ dành cho nhân viên thu ngân — không dành cho chủ cửa hàng.

- URL: `/cashier-login` - Mở tự động khi **Vendor Desktop** khởi động lạnh - Truy cập thủ công: `/cashier-login` từ trình duyệt - ✅ Nhân viên có quyền `pos` ghi - ✅ Nhân viên được gán cửa hàng (tự chọn store) - ❌ Chủ cửa hàng (dùng `/vendor-login`) - `/point-of-sale/sale` — POS toàn màn hình - Store & lane tự chọn theo hồ sơ nhân viên - Không có menu dashboard — chỉ POS
  • Vendor Desktop cài trên PC quầy (hoặc trình duyệt hiện đại)
  • Tài khoản nhân viên có ít nhất quyền pos ghi
  • Email và mật khẩu do chủ cửa hàng cấp
  • (Tùy chọn) Được gán cửa hàng (store_id trong hồ sơ) — cửa hàng sẽ tự được chọn
Màn đăng nhậpURLDành cho
Đăng nhập Thu ngân (trang này)/cashier-loginThu ngân / nhân viên quầy
Đăng nhập Operator/loginNhân viên cần dashboard (catalog, tài chính, …)
Đăng nhập Chủ/vendor-loginChủ cửa hàng / quản lý

Chủ vô tình mở /cashier-login sẽ bị đăng xuất và thấy banner “Chỉ tài khoản nhân viên mới được đăng nhập ở đây”. Chủ phải dùng /vendor-login.

1. **Mở màn Đăng nhập Thu ngân.** - Trên **Vendor Desktop**: ứng dụng mở thẳng `/cashier-login` khi chưa có session. - Trong trình duyệt: truy cập `https:///cashier-login`.
  1. Nhập email nhân viên.

    • Email do chủ cửa hàng cấp (ví dụ: cashier@store.com).
    • Phần trước @ là phần so khớp.
  2. Nhập mật khẩu.

    • Click biểu tượng 👁 bên phải để hiện/ẩn mật khẩu.
    • Mặc định mật khẩu bị che.
  3. (Tùy chọn) Tick “Ghi nhớ đăng nhập”.

    • Giữ session giữa các ca (đến khi bạn đăng xuất).
    • Mặc định BẬT cho phiên Thu ngân. TẮT nếu PC dùng chung.
  4. Click “Đăng nhập”.

    • Button hiển thị spinner và dòng “Đang đăng nhập…”.
    • Khi thành công, bạn được chuyển tới /point-of-sale/sale.
  5. Chờ POS load.

    • Workspace bán hàng mở toàn màn hình, có lane picker nếu cần.
    • Nếu cửa hàng yêu cầu mở ca, dialog Mở ca làm việc sẽ hiện trước.

Màn đăng nhập Thu ngân

  1. Nửa trái là panel thương hiệu, có hero title và mô tả lợi ích cửa hàng — giống nhau trên mọi màn auth.
  2. Nửa phải là form. Từ trên xuống:
    • Tiêu đề (Chào mừng trở lại)
    • Ô email với biểu tượng phong bì (mingcute:mail-line)
    • Ô mật khẩu với biểu tượng khóa và eye toggle
    • Checkbox “Ghi nhớ đăng nhập”
    • Button “Đăng nhập” (full width)

Có hai lớp validation:

LớpKhi nàoHiển thị ở đâu
Client (Zod)Submit với email sai / mật khẩu rỗngInline dưới ô
API (server)Server từ chối thông tinBanner đỏ trên form

Hiện ngay khi click Đăng nhập với form không hợp lệ. Không gửi request lên backend.

Triệu chứngNguyên nhânCách xử lý
Vui lòng nhập đúng định dạng email.Email thiếu @ hoặc sai formatGõ lại email
Trường này là bắt buộc.Mật khẩu rỗngNhập mật khẩu

Đăng nhập Thu ngân — lỗi email sai

Email/password hợp lệ nhưng server từ chối, banner đỏ hiện trên form, URL vẫn ở /cashier-login.

BannerNguyên nhânCách xử lý
Sai email hoặc mật khẩu.Sai mật khẩu hoặc email không tồn tạiReset mật khẩu (xem bên dưới) hoặc liên hệ chủ
Chỉ tài khoản nhân viên mới được đăng nhập ở đây.Bạn mở trang này với OwnerDùng /vendor-login thay
Tài khoản đang bị tạm khóa.Chủ đã vô hiệu hóaLiên hệ chủ
Lỗi mạngDesktop offline (lần đầu)Kết nối mạng, hoặc dùng session cache

Đăng nhập Thu ngân — sai mật khẩu

C. Khôi phục quyền truy cập — dùng flow reset

Phần tiêu đề “C. Khôi phục quyền truy cập — dùng flow reset”
  1. Từ màn đăng nhập cashier, click dòng “Quên mật khẩu?” (dòng vàng cam dưới tiêu đề).
  2. Hoặc truy cập /cashier-login/forgot-password.

Luồng reset dành riêng cho cashier ở Quên mật khẩu — Thu ngân.

Khi email/password hợp lệ:

  1. Màn cấp access token ngắn hạn và tự làm mới ngầm.
  2. Bạn được chuyển tới /point-of-sale/sale (full-screen POS).
  3. Store selector trên workspace chọn cửa hàng được hard-code trong hồ sơ nhân viên. Nếu thuộc nhiều cửa hàng, có thể chuyển.
  4. Lane selector chọn lane được gán. Cửa hàng nhiều lane hiện picker.
  5. Nếu cửa hàng yêu cầu mở ca, dialog Mở ca làm việc mở trước khi workspace render.

Bạn không thấy menu dashboard bên. Vendor dashboard (/dashboard/*) không thuộc trải nghiệm Thu ngân — nó nằm ở /vendor-login (chủ).

Khả năngCashier login (/cashier-login)Operator login (/login)Owner login (/vendor-login)
Vendor type được phépemployeeemployeeowner
Landing mặc định/point-of-sale/sale/dashboard/dashboard
Menu bênKhông (chỉ POS)Dashboard đầy đủDashboard + admin tools
Cấu hình thiết bị✅ (terminal, printer, drawer)✅✅ + nâng cao
Settings hub✅✅✅
Chuyển cửa hàngGiới hạn (theo profile)✅✅
Order nhập hộ (back-office)❌✅✅
Phù hợp quầy bán lẻ✅❌ (UI cho desktop)❌

Quy tắc đơn giản: Nếu công việc hằng ngày là thu tiền tại quầy, đăng nhập /cashier-login. Nếu cần catalog, tài chính hay nhân sự, đăng nhập /login hoặc /vendor-login.

Dùng luồng [Quên mật khẩu — Thu ngân](/vi/guides/cashier/getting-started/cashier-forgot-password/), hoặc liên hệ chủ để reset. Bạn mở URL này bằng tài khoản **owner**. Đăng xuất khỏi `/vendor-login` trước, hoặc mở owner login ở trình duyệt khác. Desktop offline và mật khẩu không có trong cache. Kết nối mạng rồi đăng nhập lại. Bạn thực ra đang dùng `/login` (employee dashboard). Đăng xuất rồi vào `/cashier-login`.
HTTPÝ nghĩaXử lý
400Validation fail (server)Kiểm tra format email
401Sai thông tinReset mật khẩu hoặc liên hệ chủ
403Bị tạm khóa hoặc không phải employeeDùng /vendor-login nếu là owner
429Thử quá nhiều lầnĐợi 60 giây rồi thử lại
5xxBackend lỗiThử lại hoặc xem trang status