跳转到内容

Auth conflict:Both a token (ANTHROPIC_AUTH_TOKEN) - Claude

Quick fix

删除 claude.json 中的 primaryApiKey,或将环境变量改为 ANTHROPIC_API_KEY 以解决认证冲突。

报错原文
Auth conflict:Both a token (ANTHROPIC_AUTH_TOKEN) and an API key (/login managed   key) are set. This may lead to unexpected behavior.

cc-switch 在切换第三方供应商时,默认在 settings.json 中写入 ANTHROPIC_AUTH_TOKEN。如果用户之前通过官方方式登录过 Claude Code,claude.json 中会保留 primaryApiKey 字段,两者同时存在会导致 Claude Code 报 Auth conflict 错误。此外,对于 Claude Desktop 的 direct provider,客户端期望读取的是 ANTHROPIC_API_KEY,使用默认的 ANTHROPIC_AUTH_TOKEN 也会导致认证失败。

  1. 删除官方登录残留的 API Key。打开 claude.json 文件,删除 primaryApiKey 字段。

    // ~/.claude/claude.json
    {
    "primaryApiKey": "sk-ant-..."
    }
  2. 或者,在配置中将环境变量名从 ANTHROPIC_AUTH_TOKEN 修改为 ANTHROPIC_API_KEY,以兼容 Claude Desktop 或避免 header 冲突。

    // ~/.claude/settings.json
    {
    "env": {
    "ANTHROPIC_AUTH_TOKEN": "your-token",
    "ANTHROPIC_API_KEY": "your-token"
    }
    }
ToolClaude Code
Version未知
PlatformsWindowsmacOSLinux
为什么 cc-switch 切换供应商会覆盖我原有的 hooks 和 permissions 等配置?
这是预期行为。因为某些供应商有独特的字段(如 CLAUDE_CODE_MAX_OUTPUT_TOKENS),为避免不同供应商的字段互相干扰导致报错或影响性能,cc-switch 采用重写配置文件的方式。建议使用“通用配置”功能来快速写入共享配置。
供应商禁止同时传入 Authorization 和 x-auth-api header 怎么办?
在 cc-switch 编辑供应商时,将认证字段选择为 ANTHROPIC_API_KEY(Bearer 模式),或者在配置中加入 "auth_mode": "bearer_only" 以禁用 x-api-key。

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