身份验证

InOneAPI 所有 API 请求都使用项目 API Key 认证。密钥代表一个项目或子密钥的调用权限,网关会在认证后继续检查模型限制、预算、速率限制和工作区策略。

请求头

通过 HTTPS 发送 Bearer Token。不要把密钥放到浏览器、移动端包体、日志、截图或公开仓库中。

curl https://api.inoneapi.com/v1/models \
  -H "Authorization: Bearer $INONEAPI_API_KEY"

JSON 请求还需要 Content-Type: application/json

curl https://api.inoneapi.com/v1/chat/completions \
  -H "Authorization: Bearer $INONEAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-4.1-mini",
    "messages": [
      { "role": "user", "content": "Hello" }
    ]
  }'

密钥类型

类型用途
工作区/项目密钥用于服务端生产调用,建议按项目拆分。
子密钥分配给成员、应用、代理或环境,可设置独立预算和模型范围。
临时测试密钥用于本地调试,过期后应立即撤销。

密钥只在创建或揭示时显示完整值。后续页面通常只展示前缀,无法从数据库明文恢复。

权限与限制

密钥可以绑定到项目,并限制可调用模型、预算、速率和成员权限。网关认证成功后会按以下顺序处理:验证密钥状态,检查项目和成员权限,检查预算和限制,选择可用路由,再把请求转发到上游。

当模型被限制时,请求会返回 403 或模型不可用错误;当预算或速率用尽时,请求会返回 429,并可能包含 Retry-After。不要通过创建多个密钥绕过限制,这会触发异常流量检测和告警。

服务端安全

  • 仅在服务端环境变量保存 INONEAPI_API_KEY
  • 轮换密钥时先创建新密钥并更新部署,再撤销旧密钥。
  • 为不同环境使用不同密钥,例如 development、staging、production。
  • 记录 X-Gateway-Trace-ID 排查问题,不记录完整密钥、提示词或敏感输出。
  • 如果密钥泄露,立即撤销,并检查最近的调用日志、预算消耗和异常告警。

常见错误

状态含义处理方式
401缺少、格式错误或无效密钥。检查 Authorization: Bearer ...,确认没有多余空格或过期值。
403密钥有效但无权调用该项目、模型或操作。检查项目归属、成员权限和模型限制。
429命中速率限制、预算限制或异常保护。遵循 Retry-After,降低并发,检查预算配置。