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_admincho 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ò. :::