一、问题背景
在 macOS 上使用 Codex CLI 时,不少用户会在执行登录命令后遇到如下错误:
codex login Token exchange failed: token endpoint returned status 403 Forbidden
典型表现为:
- 浏览器能够正常打开
- OpenAI 账号可以成功登录
- 返回终端后却直接失败,无法完成认证
该问题在 GitHub 上已有记录,对应 openai/codex 仓库的 issue #2414,但官方并未给出明确的修复说明。
二、问题现象复盘
常见的完整流程是:
- 执行
codex login - 浏览器被拉起,完成 OpenAI 登录
- 浏览器显示「登录成功」
- 终端报错:
403 Forbidden Token exchange failed
此时 Codex CLI 无法正常使用。
三、根因分析:为什么会出现 403?
1️⃣ Codex CLI 的登录机制
codex login 默认采用的是 本地 OAuth 回调机制:
- CLI 在本地启动一个回调服务(如
localhost:1455) - 浏览器登录完成后,将授权码回传给本地 CLI
- CLI 再向 OpenAI 服务端请求 token(token exchange)
2️⃣ 403 的真正原因
在 macOS 环境中,这一步 非常容易失败,常见触发条件包括:
| 原因 | 说明 |
|---|---|
| VPN / 公司代理 | OAuth token exchange 请求被拦截 |
| localhost 回调失败 | 浏览器无法正确访问本地端口 |
| 浏览器隐私策略 | Safari / Chrome 隔离本地回调 |
| Codex CLI 本身缺陷 | Issue #2414 已确认 |
⚠️ 重点结论:
这不是账号问题,也不是用户操作问题,而是 OAuth 登录链路在 macOS 上不稳定。
四、官方 Issue #2414 的结论
- Issue 已被关闭
- 没有提供官方修复代码或说明
- 社区反馈表明问题在多个 macOS / 网络环境下仍可复现
👉 因此,不要继续强行使用 codex login 默认方式。
五、最稳定的解决方案(强烈推荐)
✅ 方案一:使用 device-auth 登录(推荐)
这是目前 成功率最高、最稳定 的方式。
操作步骤
codex login --device-auth


