认证机制
Token 格式
Agent Token 采用三段式结构,各部分以 . 分隔:
{agent_api_key}.{timestamp}.{signature}| 部分 | 类型 | 说明 | 示例 |
|---|---|---|---|
agent_api_key | string | 您的 API Key | a9f3c28d7b1e4f90c2a1b3d4 |
timestamp | string | 当前 Unix 时间戳(秒) | 1743055200 |
signature | string | HMAC-SHA256 签名(hex 小写) | a1b2c3d4e5... |
签名算法
signature = HMAC-SHA256(agent_api_key + "." + timestamp, agent_api_secret) → hex 小写生成步骤
获取当前时间戳
Unix timestamp(秒),如1743055200拼接待签名字符串
raw_string = agent_api_key + "." + timestamp计算 HMAC-SHA256 签名
signature = HMAC-SHA256(raw_string, agent_api_secret)转为 hex 小写字符串
组合 Token
token = agent_api_key + "." + timestamp + "." + signature放入 HTTP Header
Authorization: Bearer {token}
时效性
Token 中的时间戳必须在服务器当前时间 ±2 分钟 以内,否则会被拒绝。请确保您的服务器时间准确(建议使用 NTP 同步)。
服务端验证流程
服务端收到请求后的验证步骤:
- 提取 Token — 从
Authorization: Bearer {token}Header 中获取 Token - 拆分 Token — 按
.分割为agent_api_key、timestamp、signature三部分 - 验证时间戳 — 确认 timestamp 与服务器时间差不超过 2 分钟
- 查库获取密钥 — 用
agent_api_key查数据库取出agent_api_secret - 验证签名 — 用取到的
agent_api_secret重新计算 HMAC-SHA256 并比对 signature