Xác thực API Key
Dùng API key từ Dashboard > API Keys trong header X-Api-Key.
Tổng quan
Các request tới public API của NiceQR.me được xác thực bằng API key gửi trong header X-Api-Key.
Trong UI sản phẩm, bạn quản lý các credential này tại Dashboard > API Keys.
Bộ tài liệu này cố ý không mô tả các flow JWT của người dùng như đăng ký, đăng nhập, Google login, refresh token hoặc các endpoint chỉ dành cho dashboard.
Tạo API Key
API key được tạo và quản lý từ Dashboard > API Keys.
- API Keys là tính năng của gói Business.
- Việc tạo và quản lý API key không được public qua REST endpoint.
- Raw key chỉ hiển thị đúng một lần. Hãy lưu lại ngay vì sau đó hệ thống sẽ không hiển thị lại.
Môi trường
Trong Dashboard > API Keys, trường Environment dùng các giá trị sau:
Live→ key bắt đầu bằngnq_live_...Test→ key bắt đầu bằngnq_test_...
Request Header
X-Api-Key: nq_live_your_api_keyQuyền
Với endpoint public hiện đang được tài liệu hóa, hãy bật quyền Generate QR Code (qr:generate) trong Dashboard > API Keys.
Trạng thái key
Trong Dashboard > API Keys, một key có thể ở các trạng thái:
ActiveSuspendedRevokedExpired
Route public được tài liệu hóa chỉ hoạt động khi key thực sự còn active và tài khoản vẫn có gói Business đang hiệu lực.
Nếu key hợp lệ nhưng không có đúng quyền yêu cầu, request sẽ bị ẩn có chủ đích và trả về 404 Not Found với body rỗng.
Hành vi khi thất bại
Với public route dùng API key, backend cố ý trả về 404 Not Found với body rỗng khi:
- thiếu header
X-Api-Key - key không hợp lệ
- key đã bị revoke hoặc hết hạn
- key bị suspended vì tài khoản không còn Business plan đang hoạt động
- key không có đúng quyền cần thiết
Ở phía client, hãy xem response đó như một lỗi xác thực hoặc phân quyền.
Ví dụ
curl -X POST https://api.niceqr.me/v1/qr/generate \
-H "X-Api-Key: nq_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"data": "https://example.com",
"bodyStyle": "square",
"bodyBrush": { "type": "Solid", "color": "#000000" }
}'Ghi chú bảo mật
- Không nhúng Live API key vào frontend hoặc code chạy trên trình duyệt.
- Chỉ dùng API key cho các tích hợp server-to-server.
- Nếu key bị lộ, hãy revoke và tạo key mới từ dashboard.