主题
401 Invalid Token / Auth Rejected
错误样例
API Error: 401 Invalid tokenbad response status code 401, body: {"error":{"code":"","message":"Invalid token","type":"new_api_error"}}CC Switch 弹窗:
Shuro 检查被拒: Auth rejected (401)根因
| 概率 | 原因 |
|---|---|
| 60% | API Key 拼错(最常见复制少了 s / 多了空格) |
| 25% | API Key 失效或被撤销(手动删除 / 套餐过期 / 安全自动撤销) |
| 10% | CC Switch 启动检查误报(实际能用) |
| 5% | API Key 在错误的环境变量名 |
排查 4 步
1. 核对 Key 的前 6 位
Shuro 后台 → 「令牌」 → 看你那把 key 的前缀。
| 你看到的 | 正确格式 |
|---|---|
sk-XxXxXx... | ✅ |
k-XxXxXx...(缺 s) | ❌ 复制少了字符 |
| 空白 / 半个 key | ❌ 粘贴出错 |
2. 环境变量是否正确
bash
echo "$ANTHROPIC_AUTH_TOKEN"fish
echo $ANTHROPIC_AUTH_TOKENpowershell
echo $env:ANTHROPIC_AUTH_TOKEN应输出完整 key。空输出 = 没设上,回去检查 Claude Code 配置。
3. curl 直接验证
bash
curl -sS -X POST 'https://shuro.vip/v1/messages' \
-H 'content-type: application/json' \
-H 'anthropic-version: 2023-06-01' \
-H 'x-api-key: <您的完整 key>' \
-d '{"model":"claude-haiku-4-5-20251001","max_tokens":10,"messages":[{"role":"user","content":"hi"}]}'| 返回 | 含义 |
|---|---|
| 200 + Hi 回复 | key 有效,问题在客户端配置 |
401 + Invalid token | key 真的无效,去后台重新生成 |
| 503 / 502 | 不是 key 问题,看 503 / 502 |
4. 重新生成 Key
如确认失效:
- 控制台 → 「令牌」
- 找到这把 → 「删除」
- 「添加新令牌」 → 复制
- 更新到你的 settings.json 或环境变量
CC Switch 启动检查 401 误报
CC Switch 启动时会做健康检查,发的请求 payload 过于简化,Shuro 这种 new-api 网关识别失败返 401。
CC Switch 弹窗本身就有提示:
⚠️ 检查失败不代表实际不可用。
忽略即可,实际使用 claude 时会发完整的请求,能正常工作。
如果想关掉检查:CC Switch → 设置 → 关闭「启动时健康检查」。
详见 CC Switch 误报章节。
多 Provider 切换时混淆 Key
常见踩坑:你给 Codex CLI 配的 key 复用到 Claude Code,结果 401。
| 客户端 | 环境变量名 |
|---|---|
| Claude Code | ANTHROPIC_AUTH_TOKEN 或 ANTHROPIC_API_KEY |
| Codex CLI | OPENAI_API_KEY(或 auth.json) |
| OpenAI Python SDK | OPENAI_API_KEY |
如果一台机器上同时跑两个客户端,确保两个环境变量都设了(即使是同一把 key)。
还不行?
- 向平台反馈核对 key 状态(TODO/VERIFY:Shuro 反馈渠道待确认)
- 看 FAQ
