跳转到内容

AuthError Missing API key cc-switch 认证头修复

Quick fix

上游 Anthropic 兼容端点只认 x-api-key,需将认证字段改为 ANTHROPIC_API_KEY,而非 ANTHROPIC_AUTH_TOKEN。

报错原文
{"type":"error","error":{"type":"AuthError","message":"Missing API key."}}

cc-switch 的 Claude 代理在转发请求时,默认根据 ANTHROPIC_AUTH_TOKEN 发送 Authorization: Bearer 头。但 OpenCode Go 等 Anthropic Messages 兼容端点只接受 x-api-key 头,忽略 Bearer 头,导致上游返回 HTTP 401 和 AuthError Missing API key。

该问题在 Claude Code CLI 中可通过表单选择认证字段解决;Claude Desktop provider 在部分版本缺少该选项,仍固定使用 ANTHROPIC_AUTH_TOKEN。已关闭 issue 表示认证头逻辑已修复:ANTHROPIC_API_KEY 会发送 x-api-key,ANTHROPIC_AUTH_TOKEN 保持发送 Bearer。另有 issue 反映 Claude Desktop 侧仍需新增认证字段选择器。

  1. 在 cc-switch 的 Provider 配置中,将认证字段从 ANTHROPIC_AUTH_TOKEN 改为 ANTHROPIC_API_KEY,使 cc-switch 向上游发送 x-api-key 而不是 Authorization: Bearer。

    cc-switch Provider 配置
    {
    "env": {
    "ANTHROPIC_BASE_URL": "https://opencode.ai/zen/go/v1",
    "ANTHROPIC_API_KEY": "sk-***",
    "ANTHROPIC_MODEL": "minimax-m2.5"
    }
    }
  2. 如果使用的是 Claude Desktop 且界面没有“认证字段”选择器,需使用包含 Claude Desktop provider 表单新增认证字段选择器的修复版本,或临时通过本地 adapter 将 Authorization: Bearer 转换为 x-api-key 后转发上游。

  3. 重新发起请求,确认上游不再返回 HTTP 401,且请求头中包含 x-api-key。

ToolClaude Code / Claude Desktop / OpenCode Go
Version3.14.1 - 3.20.0
PlatformsLinux
为什么配置了 API key 还是提示 Missing API key?
因为 cc-switch 发送的是 Authorization: Bearer,而上游 Anthropic 兼容端点只读取 x-api-key,所以认为缺少 API key。
Claude Code CLI 和 Claude Desktop 表现为什么不一样?
Claude Code CLI 表单可选择认证字段,可切到 ANTHROPIC_API_KEY;部分版本的 Claude Desktop provider 固定使用 ANTHROPIC_AUTH_TOKEN,没有该选项。
使用 OpenAI 格式为什么正常?
OpenAI 兼容端点接受 Authorization: Bearer,所以 openai_chat 格式不受此问题影响。
没有修复版本时如何临时绕过?
在 cc-switch 和上游之间加一个本地 adapter,把 Authorization: Bearer 转换成 x-api-key 后转发。

这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。