跳到正文

CC-016:无效令牌(曾购买过第三方服务后切换)


问题现象

曾使用过其他第三方中转服务,切换到新服务后,Claude Code 持续返回:

API Error: 401 {"error":{"type":"authentication_error","message":"invalid x-api-key"}}

新配置已正确填写,但错误依旧。


根因分析

旧服务遗留了系统环境变量
  → ANTHROPIC_BASE_URL 指向旧服务地址
  → ANTHROPIC_API_KEY / ANTHROPIC_AUTH_TOKEN 保存旧令牌
  → 环境变量优先级高于配置文件
  → Claude Code 忽略新配置,向旧端点发送旧令牌
  → 旧端点拒绝 → 401 认证失败

修复步骤

Windows 用户

第一步:打开环境变量编辑器

Win + R,输入 sysdm.cpl,回车。点击「高级」选项卡 → 「环境变量」。

也可以在任务栏搜索「环境变量」直接打开。

第二步:分别在「用户变量」和「系统变量」中核对以下三个变量

ANTHROPIC_BASE_URL
ANTHROPIC_API_KEY
ANTHROPIC_AUTH_TOKEN

第三步:保存退出,重新打开 cmd 或 PowerShell

claude

只删除明确属于旧服务的值;先导出或截图变量名(遮盖值)用于回滚。不要删除整个 ~/.claude~/.claude.json 或组织管理配置。


macOS / Linux 用户

第一步:编辑 Shell 配置文件

# zsh 用户
vi ~/.zshrc
 
# bash 用户
vi ~/.bashrc

第二步:找到并删除以下三行(有几行删几行)

export ANTHROPIC_BASE_URL=...
export ANTHROPIC_API_KEY=...
export ANTHROPIC_AUTH_TOKEN=...

第三步:使配置生效

source ~/.zshrc   # 或 source ~/.bashrc

第四步:重新打开终端,启动 Claude Code

claude

预防措施

做法避免的问题
切换服务时优先检查并清理旧环境变量旧变量静默覆盖新配置导致认证失败
/statusclaude doctor 检查活动配置源多处配置冲突难以定位
切换后核对 Base URL 并发起不含敏感数据的测试请求claude --version 只能验证安装版本,不能验证 API 连通性

官方当前变量名是 ANTHROPIC_API_KEYX-Api-Key)和 ANTHROPIC_AUTH_TOKEN(Bearer)。旧文中的 ANTHROPIC_API_TOKEN 未出现在本次官方变量表中,已移除。

资料来源:Claude Code 环境变量参考 · 配置诊断(2026-07-26 核对)