鉴权
除 GET /v1/health 外,所有接口都需要 API Key。两种等价方式任选其一:
curl -H "X-API-Key: $LAMBERT_API_KEY" "$BASE/quota"
curl -H "Authorization: Bearer $LAMBERT_API_KEY" "$BASE/quota"
Key 类型
| 类型 | 可访问 |
|---|---|
| 客户端 key | /v1/* 下除 /v1/admin/* 之外的所有接口 |
| 管理员 key | 全部接口,包括 /v1/admin/*(同步触发、key 管理) |
客户端 key 访问管理接口会返回 403 forbidden。
安全建议
- 服务端仅保存 key 的 SHA-256,丢失后无法找回,只能吊销重发。
- 只在服务器端使用 key;不要写入前端代码或公开仓库。
- 怀疑泄漏时,请管理员立即吊销(
DELETE /v1/admin/keys/{id}),吊销后立即生效,该 key 返回401。
管理员接口(仅管理员)
# 创建客户端 key(响应中的 api_key 只显示一次)
curl -X POST -H "X-API-Key: $ADMIN_KEY" -H "Content-Type: application/json" \
-d '{"name":"acme-app","admin":false}' "$BASE/admin/keys"
# 列出(只含元数据)
curl -H "X-API-Key: $ADMIN_KEY" "$BASE/admin/keys"
# 吊销
curl -X DELETE -H "X-API-Key: $ADMIN_KEY" "$BASE/admin/keys/2"
# 立即触发一轮后台同步
curl -X POST -H "X-API-Key: $ADMIN_KEY" "$BASE/admin/sync"