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。