Bearer 认证
所有 /api/v1/* LLM 接口都需要在 HTTP Header 里带Authorization: Bearer sk-gw-...。
Key 格式
固定 sk-gw- 前缀 + 26 字符 Crockford base32(共 32 字符)。例:
sk-gw-01J0K3T7P2VZAQ8XR4N6M9YBHE
Key 在数据库只存 SHA-256 哈希;明文仅在创建那次返回一次。 丢失只能删除重建。
权限范围 (Scope)
创建 key 时可指定 scope:空数组 = 不限模型;指定 model_slug 列表 = 仅限这些模型。
POST /api/v1/keys
{
"name": "production",
"scope": ["claude-opus-5", "deepseek-v4-flash"]
}被拦截时返回 403 ERR_KEY_SCOPE,错误信息会列出该 key 允许的模型。
禁用 / 删除
禁用是软封禁——Key 仍在 DB 但所有请求返回401 ERR_KEY_DISABLED,可在控制台一键启用。
删除是硬删,会级联清理 key 与最近请求的关联(调用记录本身保留,审计需要)。删除不可恢复。
会话 vs Bearer
注意区分两种 token:
- Bearer sk-gw-***:调用
/chat/completions、/messages等 LLM 接口;明文 sk-gw- 形式。 - hpx_session cookie:浏览器登录控制台后自动获得, 调用
/auth/me、/usage/balance、/keys等管理接口。
两者互不通用——浏览器 cookie 不能调 LLM;sk-gw- 不能调控制台 API。