Chuyển tới nội dung chính

Xác thực

Hệ thống dùng JWT Bearer token. Đăng nhập một lần lấy token, sau đó gắn token vào mọi lời gọi tiếp theo.

Đăng nhập

POST /Auth/login

Không cần token. Thân yêu cầu:

{
"username": "001_dotx",
"password": "mat_khau"
}

Trả về:

{
"success": true,
"data": {
"JwtToken": "eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9...",
"RefreshToken": "a1b2c3d4-..."
}
}

Sai tài khoản hoặc mật khẩu trả HTTP 400 kèm message: "Sai tên đăng nhập hoặc mật khẩu".

Ví dụ bằng curl

curl -X POST "https://hqbm.vn/api/v1/Auth/login" \
-H "Content-Type: application/json" \
-d '{"username":"001_dotx","password":"mat_khau"}'

Gọi API có xác thực

Gắn token vào header Authorization:

curl "https://hqbm.vn/api/v1/Dashboard/danhSachDonDangGiao?page=1&pageSize=10" \
-H "Authorization: Bearer <JwtToken>"

Thiếu token hoặc token hết hạn trả HTTP 401.

Làm mới token

POST /Auth/refresh-token

Token truy cập có thời hạn ngắn; dùng RefreshToken nhận được lúc đăng nhập để lấy token mới mà không bắt người dùng đăng nhập lại.

Thông tin người dùng hiện tại

GET /Auth/getuserinfo

Trả về hồ sơ người đăng nhập kèm vai trò (Roles) và danh sách quyền (Permissions).

Phân quyền

Token mang sẵn vai trò và quyền. Backend chặn ở hai mức:

  • Vai trò — ví dụ sys_admin cho các endpoint quản trị.
  • Quyền lẻ — mã dạng DonHangXem, ChungTuNghiepVuKhacSua, KhoNhapDonGia...

Gọi endpoint mà không đủ quyền trả HTTP 403.

:::tip Quyền của shipper Tài khoản shipper được cộng thêm quyền theo hồ sơ nhân viên lúc đăng nhập, không chỉ theo vai trò. Vì vậy danh sách quyền trong token có thể nhiều hơn quyền cấu hình ở vai trò. :::