明明登录成功,Claude Code 为什么还报 401 无效令牌?

一篇回溯排查Claude Code认证失败的完整指南

背景

笔者买了Claude Pro会员,想在终端里用Claude Code写代码,结果一运行就报错:

css 复制代码
401 {"error":{"code":"","message":"无效的令牌 (request id: ...)","type":"new_api_error"}}

明明已经登录了,claude auth status 也显示 loggedIn: true.但就是用不了。如果你也遇到了这个问题,这篇文章会帮你快速定位原因。

先了解一下:Claude Code 的认证方式

Claude Code支持两种认证路径:

  • 订阅账号登录Pro/Max/Team/Enterprise):用你的Claude.ai账号通过浏览器OAuth授权,请求走Anthropic官方服务器,用量计入你的订阅额度。
  • API Key 登录 (Console):用Anthropic控制台生成的API Key,按token计费。

首次运行 claude 时会让你选择登录方式,Pro 用户应该选择 "Claude account with subscription"

另外需要注意:Pro 订阅是claude.ai网页端、桌面端、移动端和Claude Code共享同一个用量额度的。用量达到上限后会触发限速,需要等待一段时间才能继续使用。如果你同时重度使用多个端,可以考虑升级到Max计划获取更高额度。

排查流程

第一步:确认基本信息

运行以下命令收集信息:

bash 复制代码
# 查看版本
claude --version

# 查看认证状态
claude auth status

# 检查是否有 API Key 环境变量干扰
echo $ANTHROPIC_API_KEY

认证状态显示authMethod: "oauth_token"loggedIn: true,登录本身就没问题。$ANTHROPIC_API_KEY有值的话先unset ANTHROPIC_API_KEY

第二步:看错误信息的语言

这是最容易忽略的一点。仔细看看我的报错信息:"message":"无效的令牌"

Anthropic官方API的报错是英文。我看到中文,说明请求压根没到Anthropic的服务器,被某个代理站拦下来了。

第三步:查环境变量

运行以下命令一网打尽:

bash 复制代码
echo $ANTHROPIC_BASE_URL
echo $ANTHROPIC_AUTH_TOKEN
env | grep -i anthropic
env | grep -i claude
env | grep -i proxy

如果你也看到类似这样的输出:

ini 复制代码
ANTHROPIC_BASE_URL=https://xxx.某代理站.top
ANTHROPIC_AUTH_TOKEN=sk-xxxxxxxx

这就是问题所在。 ANTHROPIC_BASE_URL环境变量会覆盖 Claude Code 默认的 API 端点,让所有请求发到代理站而不是api.anthropic.com。即使你用官方账号登录了,请求依然走的是代理站------代理站当然不认识你的 OAuth token,于是返回 401。

第四步:修复

临时修复(当前终端会话生效):

bash 复制代码
unset ANTHROPIC_BASE_URL
unset ANTHROPIC_AUTH_TOKEN

然后重新运行 claude,应该就正常了,这也说明你的问题确实和我一样,是被代理站拦截了。

永久修复(找到并删除写入这些变量的地方):

javascript 复制代码
grep -n "ANTHROPIC\|代理站域名" ~/.zshrc ~/.bash_profile ~/.bashrc ~/.zprofile ~/.zshenv 2>/dev/null

找到对应行删掉,再source一下配置文件。如果所有配置文件里都找不到,说明这些变量是之前在终端手动export的,重启终端就消失了,不需要额外处理。

常见的其他认证问题

如果你没有代理站的问题,但Claude Code仍然报错,检查以下几点:

  • 登出再重新登录 :在Claude Code中输入/logout,然后运行claude login,选择订阅账号方式重新登录。
  • 彻底清除缓存后重登
bash 复制代码
 rm -rf ~/.claude
 rm -f ~/.claude.json
 claude
  • 确认浏览器中登录的是正确账号:授权时浏览器里可能已经登录了另一个没有 Pro 的账号。
  • 确认订阅没过期 :去claude.ai/settings检查你的 Pro 状态。
  • Claude Code 版本太旧 :运行 npm update -g @anthropic-ai/claude-code 更新到最新版。
  • 第三方工具限制:Anthropic 从 2026 年 1 月起限制了 Claude Code 凭证只能用于官方客户端。如果你在用 OpenClaw、Kilo Code 等第三方工具,需要改用 API Key 方式。

几个关键点

  • 看到中文错误信息就应该警觉 ------ Anthropic 官方 API 返回英文错误,中文说明请求被发到了代理站。
  • ANTHROPIC_BASE_URL是最常见的坑。用过代理站的人容易把这个变量留在shell配置里,后来换成正式账号登录也没用,请求还是走代理那边。
  • 排查认证问题最顺手的命令:env | grep -i anthropic,一行看清所有相关变量。
  • unset 只管当前会话,要彻底解决需要从Shell配置文件中删除相关行。
相关推荐
一条咸鱼_SaltyFish3 小时前
从 Spec Coding 到规范驱动 —— AI 编程的确定性边界
人工智能·ai编程·开发者·规范·mcp·speccoding
岛雨QA3 小时前
【基础知识】人工智能大模型常见术语(1)
人工智能·aigc·openai
Jackson__3 小时前
Agent Skill 和 Rules 有什么区别?
前端·agent·ai编程
哈罗哈皮4 小时前
龙虾(openclaw)本地快速安装及使用教程
前端·aigc·ai编程
workflower5 小时前
AI在旅游业的应用
人工智能·aigc·测试用例·ai编程·ai写作
用户277552501405 小时前
给 Claude Code 加上中文超能力:Spring Boot DDD + 飞书钉钉 MCP 实战
claude
workflower6 小时前
OpenClaw 是什么
人工智能·chatgpt·机器人·测试用例·集成测试·ai编程
左耳咚6 小时前
Claude Code 技术全景概览
前端·ai编程
github.com/starRTC6 小时前
OpenClaw 用什么模型?
ai编程