type
status
date
slug
summary
tags
category
icon
password

一、首先订阅 Claude code pro 会员

在 Claude Code 通过订阅账号跳转网页回调失败,报错信息:
notion image
OAuth error: Failed to fetch user roles: Request failed with status code 403 已经跳转到网页认证了,为什么 Claude code 还是不能用
这个问题是因为, Claude Code 的 OAuth 已完成,但本地 CLI 拿到的是一个「没有 Code 权限的会话」,所以它在拉 user roles 时被 403 拒了。
下面把 原因 → 判断点 → 解决路径 理清。

你现在处在一个「最容易卡死」的中间态

从问题图片中能确认几件关键事实:

✅ 1\. OAuth 网页 确实成功了

右边浏览器明确写着:
You're all set up for Claude Code. You can now close this window.
这一步 不是问题

❌ 2\. Claude Code CLI 报错的本质

终端里真正致命的不是 invalid api-key,而是这一句:
这句话的真实含义是:
👉 Claude Code 用 OAuth token 去 Claude 平台拉「你有哪些角色 / 权限」 👉 平台返回:你这个账号 / token 没有 Claude Code 的角色
也就是说:
你登录成功了,但账号在 Claude 后端不被允许使用 Claude Code

最常见的 4 个原因

原因 1(⭐️最常见):账号没有 Claude Code 权限

Claude Code 不是所有 Claude 账号都自动开
尤其是:
  • 新账号
  • 刚绑卡
  • 没创建过 Developer 项目
  • 地区 / IP 反复切换过
👉 OAuth 能过,但 roles=empty → 403

验证方法

打开这个页面(你刚刚其实已经在了):
检查有没有这些东西之一:
  • Projects / API Keys 页面可用
  • ❌ 如果只看到普通 Chat UI,没有 Developer 控制台 → 基本就是没开

原因 2:你当前登录的 不是你以为的那个 Claude 账号

这个坑我见过非常多次,尤其你这种:
  • 浏览器里有多个 Google / Email
  • Claude 网页能用
  • CLI 用的是 另一个 session
👉 OAuth 用的是 浏览器当前激活账号 👉 CLI 本地缓存的 token 对应的是 另一个账号
结果就是:
  • 网页说成功
  • CLI 拉角色 403

原因 3:本地 Claude Code 缓存脏了(很常见)

Claude Code 会缓存 OAuth token 和角色信息。
只要你:
  • 切过账号
  • 重装过
  • 用过代理 / VPN
  • 改过 $HOME
就可能出现 永远 403,哪怕账号是对的

原因 4:网络 / IP / 代理导致角色接口被拒

你前面对:
  • Cursor
  • 反代
  • antigravity
  • 多模型 Provider
折腾得比较多,这一点不能忽略

✅ 一步到位的解决方案(按顺序来,别跳)

STEP 1|彻底清理 Claude Code 本地状态(关键)

⚠️ 不做这一步,后面 90% 白折腾

STEP 2|确认你只有一个 Claude 账号在浏览器中登录

  • 打开 无痕窗口
  • 只登录 一个 Claude 账号

STEP 3|重新登录 Claude Code(必须手动)

流程应该是:
  1. CLI 输出 Opening browser for authentication...
  1. 浏览器跳转
  1. 网页显示 You're all set up
  1. 回到终端 自动成功
❌ 如果网页成功但 CLI 仍卡在 403 👉 99% 是账号权限问题,不是你操作问题

🧠 如果仍然 403,基本可以下结论了

结论:

当前 Claude 账号尚未被开放 Claude Code / Developer Role
这是 Anthropic 的后端开关问题,不是你环境。

🧩 可行的解决方法

方案 A:直接用 API Key(绕过 OAuth)- 亲测可行 changyou

如果你只是想 用 Claude Code 干活,不执着 OAuth:
changyou 注: ANTHROPIC_API_KEY 这个key 可以去 claude 开发者平台新建一个,这里先配置, Pro 会员在 Claude Code 不一定要用这个的。
这种方式 不走角色接口,最稳

二、终端设置代理

第一步修复后,再次登录,终端这次报错信息:
这个问题可以设置终端走代理修复:
经过以上两步,最终成功:
notion image
 
三、总结
 
每次打开新的终端,cd 到项目目录后,执行 claude 如果不成功,就执行一遍以下流程:
这个情况,先 cd 到项目,再次执行以上清除缓存步骤,然后再次执行
这样又登录成功了。
 
Claud Code 用户体验真差!如果不是想要用他的 sonnet 和 opus 模型,果断不折腾这个了!