API Reference
Xác thực

Xác thực API

XCaphe API sử dụng JWT Bearer token. Token được cấp sau khi đăng nhập thành công.

Base URL:

https://api.xcaphe.vn

Đăng nhập (Staff/Manager)

POST /auth/login
Content-Type: application/json

Request body:

{
  "phone": "0912345678",
  "pin": "1234",
  "orgSlug": "the-brew"
}

Response 200 OK:

{
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  "staff": {
    "id": "uuid",
    "name": "Nguyễn Văn A",
    "role": "manager",
    "branchId": "uuid-or-null"
  }
}

Response 401 Unauthorized:

{ "error": "Số điện thoại hoặc PIN không đúng" }

Sử dụng token

Thêm token vào header Authorization của mọi request:

GET /orders
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

Token hết hạn

Token staff có hiệu lực 30 ngày. Khi hết hạn, API trả về 401. Client cần redirect người dùng về trang đăng nhập.

⚠️

Không lưu token trong localStorage nếu bạn xây dựng ứng dụng nhúng public. Dùng httpOnly cookie hoặc secure storage.


Lấy thông tin người dùng hiện tại

GET /auth/me
Authorization: Bearer <token>

Response:

{
  "id": "uuid",
  "name": "Nguyễn Văn A",
  "role": "manager",
  "orgId": "uuid",
  "branchId": "uuid"
}

Headers bổ sung

HeaderMô tả
X-Org-IDID tổ chức (tùy chọn, override từ JWT)
X-Branch-IDID chi nhánh (tùy chọn)
X-Session-IDSession ID của khách hàng (dùng cho customer API)

Rate limiting

API có rate limit 100 requests/phút per IP. Nếu vượt quá, API trả về:

HTTP 429 Too Many Requests
Retry-After: 30