命令字典
Slash 命令、CLI 子命令、Hook 事件、启动参数的字典与演进史。
Slash 命令、CLI 子命令、Hook 事件、启动参数的字典与演进史。
登录Anthropic账户并验证身份
/login 是 Claude Code 会话内的 slash 命令,用于触发 OAuth 认证流程并写入本地凭证存储(macOS 为加密的 Keychain,其余平台为 .credentials.json 文件,详见下方平台对照表)。官方文档原文:"Claude Code manages .credentials.json through /login and /logout",并补充 "On macOS, credentials are stored in the encrypted macOS Keychain."
首次运行 claude 时,程序会自动打开浏览器完成初始登录,无需手动输入 /login。/login 的典型用途是在已有会话内重新认证——例如切换账户、凭证失效或从 API Key 模式切回订阅 OAuth 模式。
订阅/账户要求(来自官方文档):
| 账户类型 | 说明 |
|---|---|
| Claude Pro / Max | 使用 Claude.ai 账户登录 |
| Claude for Teams / Enterprise | 使用团队管理员邀请的 Claude.ai 账户 |
| Claude Console | 使用 Console 账户,需管理员先邀请 |
| Bedrock / Vertex AI / Microsoft Foundry | 通过环境变量认证,无需 /login 浏览器流程 |
在 Claude Code 会话提示符下直接输入:
/login
# 在会话内输入
/login
Claude Code 自动打开浏览器窗口 → 在浏览器中登录 Claude.ai / Console → 成功后自动重定向回终端,凭证写入本地存储。
官方文档说明:若浏览器无法回调 localhost(常见于 WSL2、SSH 会话、容器),浏览器登录后会显示一串验证码,而非自动跳转。
# 1. 在会话内输入
/login
# 2. 若浏览器无法自动打开,按 c 复制登录 URL,粘贴至浏览器手动访问
# 3. 浏览器登录成功后,将页面显示的 code 粘贴回终端:
Paste code here if prompted: <粘贴此处>
| 平台 | 存储位置 |
|---|---|
| macOS | 加密的系统 Keychain |
| Linux | ~/.claude/.credentials.json(文件权限 0600) |
| Windows | %USERPROFILE%\.claude\.credentials.json |
| 自定义路径 | 在 Linux 或 Windows 上,若设置了 CLAUDE_CONFIG_DIR 环境变量,.credentials.json 位于该目录下(macOS 始终使用 Keychain,不受此变量影响) |
官方文档列出的 Supported authentication types:Claude.ai credentials、Claude API credentials、Azure Auth、Bedrock Auth、Vertex Auth。
/login 需要交互式浏览器流程,不适用于 CI pipeline。官方推荐使用 claude setup-token 生成一年期 OAuth token:
# 执行一次,跟随提示完成 OAuth 授权,复制输出的 token
claude setup-token
# 在 CI 中设置为环境变量
export CLAUDE_CODE_OAUTH_TOKEN=your-token
此 token 需要 Pro、Max、Team 或 Enterprise 订阅,且仅限推理使用,不能建立 Remote Control 会话。使用 --bare 模式时该变量不生效,应改用 ANTHROPIC_API_KEY 或 apiKeyHelper。
| 约束 | 说明 |
|---|---|
| 优先级最低 | /login 的 OAuth 凭证在认证优先级中排第 6 位(最低),会被 cloud provider 凭证(1)、ANTHROPIC_AUTH_TOKEN(2)、ANTHROPIC_API_KEY(3)、apiKeyHelper(4)、CLAUDE_CODE_OAUTH_TOKEN(5)依次覆盖 |
| 不适用于 cloud provider | 使用 Bedrock / Vertex / Foundry 时,认证通过环境变量完成,/login 的 OAuth 流程不参与 |
| 不适用于 Web 版 | Claude Code on the Web 始终使用订阅凭证,不读取 ANTHROPIC_API_KEY 或 ANTHROPIC_AUTH_TOKEN |
| Bare 模式不读取 OAuth token | claude -p --bare 时 CLAUDE_CODE_OAUTH_TOKEN(即 /login 写入的凭证)不生效 |
| 方式 | 适用场景 | 交互式 | 优先级 |
|---|---|---|---|
/login | 会话内重新认证、切换账户 | 是 | 6(最低) |
claude(首次启动) | 首次安装后初始登录 | 是 | — |
ANTHROPIC_API_KEY | 直接 API 密钥访问 | 否 | 3 |
ANTHROPIC_AUTH_TOKEN | LLM gateway / proxy 的 Bearer token | 否 | 2 |
apiKeyHelper 脚本 | 动态凭证、短期 token、vault 集成 | 否 | 4 |
claude setup-token → CLAUDE_CODE_OAUTH_TOKEN | CI pipeline、无浏览器脚本 | 一次性 | 5 |
/login 重新绑定。/status 显示认证失效时,在当前会话直接 /login 而无需退出重启。ANTHROPIC_API_KEY 导致走 API Key 路径,unset ANTHROPIC_API_KEY 后执行 /login 切回订阅 OAuth。ANTHROPIC_API_KEY 遮盖 /login:若环境变量中存在 ANTHROPIC_API_KEY,它的优先级(第 3 位)高于 /login 写入的 OAuth 凭证(第 6 位)。即使 /login 成功,实际请求仍会走 API Key。官方建议:执行 unset ANTHROPIC_API_KEY,再用 /status 确认当前生效的认证方式。
WSL2/SSH/容器中浏览器回调失败:/login 触发后若浏览器无法回调 localhost,终端不会自动收到凭证。需手动访问 URL,完成登录后将浏览器显示的 code 粘贴到终端的 Paste code here if prompted 提示处。
/logout 清除当前会话凭证,之后可再次执行 /login 重新认证。
支持 Anthropic 公网 gateway 端点
修复 /login 在 STS token 过期时被不必要提示的问题
修改 /login 命令现在可以从 claude agents 视图打开登录对话框而不提示不可用
修复 Windows Terminal 中 /login URL 被截断的问题
添加当配置 awsAuthRefresh 时的 AWS 凭证刷新选项
改进对话间距一致性
修复在使用 CLAUDE_CODE_OAUTH_TOKEN 环境变量启动的会话中无效的问题,现在清空 env 令牌使磁盘凭证生效
修复在使用 CLAUDE_CODE_OAUTH_TOKEN 环境变量启动时无效的问题
修复代码提示中粘贴不工作的问题
修复 `/login` OAuth URL 因填充导致无法干净地鼠标选择的问题
修复运行时包含 thinking blocks 导致的 400 错误