如何对 API 请求进行身份验证
何时使用本指南
当您需要调用任意 Elimapi API 时使用。首先选择以下两种身份验证方式之一:
| 方式 | 适用场景 |
|---|---|
| 访问令牌 (JWT) | 应用具有用户界面,需要定期登录 |
| API 密钥 | 自动化系统集成(服务器到服务器),无需管理登录会话 |
完整参考(端点、错误码、配额):身份验证参考
前提条件
- 已激活的 Elimapi 账户 — 参见注册账户
- Base URL:
https://openapi.elim.asia
方式 1:使用访问令牌 (JWT) 进行身份验证
第 1 步 — 登录获取令牌
向登录端点发送 POST 请求:
POST /v1/auth/login
Content-Type: application/json
Accept: application/json
{
"email": "[email protected]",
"password": "password"
}
响应返回 access_token 和 refresh_token。
第 2 步 — 在每个请求中附带令牌
Authorization: Bearer {access_token}
Accept: application/json
Content-Type: application/json
重要说明:
- 令牌有效期为 90 天。
- 建议将令牌存储在系统缓存(Redis/Memcached)中,以获得最佳性能。
- 不要与第三方共享令牌。
方式 2:使用 API 密钥进行身份验证
第 1 步 — 在控制台创建 API 密钥
- 在控制台设置一个助记名称(例如:
Production Server),然后点击 Generate。 - 系统仅显示一次完整的密钥代码 — 请立即保存。
- 管理密钥列表:查看创建日期、最后使用时间,或在密钥泄露时立即 Revoke。
[!IMPORTANT] 安全: API 密钥拥有与您账户等效的访问权限。切勿在公共平台(GitHub、论坛)上共享,也不要提供给不受信任的第三方。
第 2 步 — 在 x-api-key 请求头中发送密钥
在每个请求的请求头中添加 x-api-key 字段:
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"}'
验证结果
发送一个搜索测试请求;收到 200 响应并带有产品数据即表示身份验证成功:
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"}'
处理常见错误
| 错误码 | 原因 | 处理方法 |
|---|---|---|
| 401 | 令牌/API 密钥缺失、错误或已过期 | 检查 Authorization 或 x-api-key 请求头 |
| 403 | 账户被锁定或权限不足 | 在控制台检查账户状态 |
| 429 | 超出速率限制 | 降低调用频率或升级套餐 |
代码示例(使用 API 密钥)
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