Cách xác thực API requests
Khi nào dùng hướng dẫn này
Dùng khi bạn cần gọi bất kỳ API Elimapi nào. Trước tiên bạn chọn một trong hai phương thức xác thực:
| Phương thức | Khi nào dùng |
|---|---|
| Access Token (JWT) | Ứng dụng có giao diện người dùng, cần đăng nhập định kỳ |
| API Key | Tích hợp hệ thống tự động (server-to-server), không cần quản lý phiên đăng nhập |
Tham chiếu đầy đủ (endpoints, mã lỗi, định mức): Tham chiếu xác thực
Điều kiện trước
- Tài khoản Elimapi đã kích hoạt — xem Đăng ký tài khoản
- Base URL:
https://openapi.elim.asia
Cách 1: Xác thực bằng Access Token (JWT)
Bước 1 — Đăng nhập lấy token
Gửi request POST đến endpoint đăng nhập:
POST /v1/auth/login
Content-Type: application/json
Accept: application/json
{
"email": "[email protected]",
"password": "password"
}
Response trả về access_token cùng refresh_token.
Bước 2 — Đính kèm token vào mọi request
Authorization: Bearer {access_token}
Accept: application/json
Content-Type: application/json
Lưu ý quan trọng:
- Token có hiệu lực trong 90 ngày.
- Nên lưu token trong hệ thống cache (Redis/Memcached) để tối ưu hiệu suất.
- Không chia sẻ token với bên thứ ba.
Cách 2: Xác thực bằng API Key
Bước 1 — Tạo API Key trên Dashboard
- Trên Dashboard, đặt tên gợi nhớ (ví dụ:
Production Server) và nhấn Generate. - Hệ thống chỉ hiển thị mã Key đầy đủ một lần duy nhất — lưu lại ngay.
- Quản lý danh sách Key: xem ngày tạo, lần cuối sử dụng, hoặc Revoke ngay nếu Key bị lộ.
[!IMPORTANT] Bảo mật: API Key có quyền truy cập tương đương với tài khoản của bạn. Tuyệt đối không chia sẻ trên các nền tảng công khai (GitHub, diễn đàn) hoặc cho bên thứ ba không tin cậy.
Bước 2 — Gửi key trong header x-api-key
Thêm trường x-api-key vào header của mỗi request:
curl -X POST "https://openapi.elim.asia/v1/products/search" \
-H "x-api-key: your_api_key_here" \
-H "Content-Type: application/json" \
-d '{"q": "keyword", "platform": "taobao"}'
Xác minh kết quả
Gửi một request tìm kiếm thử; nhận response 200 với dữ liệu sản phẩm là đã xác thực thành công:
curl -X POST "https://openapi.elim.asia/v1/products/search" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"q": "áo thun", "platform": "taobao"}'
Xử lý lỗi thường gặp
| Mã lỗi | Nguyên nhân | Cách xử lý |
|---|---|---|
| 401 | Token/API Key thiếu, sai hoặc hết hạn | Kiểm tra lại header Authorization hoặc x-api-key |
| 403 | Tài khoản bị khóa hoặc không đủ quyền | Kiểm tra trạng thái tài khoản trên Dashboard |
| 429 | Vượt quá rate limit | Giảm tần suất gọi hoặc nâng cấp gói |
Ví dụ mã nguồn (dùng API Key)
JavaScript (Axios)
const axios = require('axios')
const client = axios.create({
baseURL: 'https://openapi.elim.asia/v1',
headers: {
'x-api-key': 'YOUR_API_KEY_HERE',
'Content-Type': 'application/json',
},
})
async function searchProduct(keyword) {
try {
const response = await client.post('/products/search', { q: keyword, platform: 'taobao' })
console.log(response.data)
} catch (error) {
console.error('Error:', error.response.status)
}
}
Python (Requests)
import requests
API_URL = "https://openapi.elim.asia/v1/products/search"
HEADERS = {
"x-api-key": "YOUR_API_KEY_HERE",
"Content-Type": "application/json"
}
def search_product(keyword):
response = requests.post(API_URL, headers=HEADERS, json={"q": keyword, "platform": "taobao"})
if response.status_code == 200:
return response.json()
return None
Liên kết liên quan
- Tham chiếu: Tham chiếu xác thực — endpoints, định mức, bảng mã lỗi đầy đủ
- Tiếp theo: Hướng dẫn tìm kiếm sản phẩm · Tạo & quản lý đơn hàng
- Cấu hình: Tham chiếu cấu hình