一句话结论
先用 `codex login status` 确认状态,再用 `codex logout` 安全清理当前凭据并重登;浏览器回调受阻时优先试设备码登录。
适用场景
- 首次安装 Codex 登录卡住
- 之前能用,今天突然报 account/read failed
- 换了 VPN 或网络后没法继续
- Windows 上报 Token exchange failed 或 exit code 3221225781
- 浏览器回调页面显示 can't reach this page
常见现象
- 终端报 account/read failed during TUI bootstrap
- 浏览器一直转圈打不开登录页
- 登录后命令依然提示未登录
- Windows 报 Sign-in could not be completed: Token exchange failed
- 浏览器回调 localhost 端口无响应
- Windows 报 exit code 3221225781(0xC0000135)
原因解释
- 网络、代理、TLS / 企业 CA、系统时间或服务可用范围导致认证链路失败
- 缓存的登录态过期或不匹配;凭据可能保存在 `~/.codex/auth.json`,也可能在系统 keyring
- 代理分流或企业网络策略影响浏览器登录、token exchange 或 localhost 回调
- Windows 的 0xC0000135 表示系统找不到某个 DLL;缺少 Visual C++ 运行库只是可能原因之一
- 本地端口被占用导致 OAuth 回调失败
- 防火墙或杀毒软件拦截了 Codex 的本地回调监听
解决步骤
- 先跑 codex login status 确认当前登录状态(返回 0 表示已登录)
- 确认本机能正常打开 chatgpt.com / auth.openai.com
- 需要重登时执行 codex logout;这是清理当前凭据的标准方式,不要直接删除 ~/.codex/auth.json
- 核对系统时间、代理、TLS / 企业 CA 和服务可用范围;只使用稳定、可信且符合服务条款的网络
- 重新执行 codex login,如果浏览器打不开就用 codex login --device-auth
- 登录成功后跑 codex login status 确认状态为已登录
- Windows 报 3221225781 时先确认缺失的 DLL 名称或查看系统事件;只有指向 vcruntime140_1.dll 等 VC++ 组件时,再安装官方 Visual C++ Redistributable
可复制命令
# 检查当前登录状态
codex login status
# 使用标准命令清理当前凭据;不要直接删除 auth.json 或系统 keyring 项
codex logout
# 重新登录(默认浏览器方式)
codex login
# 浏览器回调不可用或运行在远程 / headless 环境时,用设备码方式
codex login --device-auth
仍然不行怎么办
- 反复失败可以临时换 Claude Code 或 Cursor 顶替
- Windows 上 Token exchange failed:检查系统时间、代理、TLS / CA、浏览器回调和安全软件拦截记录;只放行明确的 Codex 进程或 localhost 回调,不要关闭整机防火墙或杀毒软件
- 浏览器回调失败:检查本地端口和安全软件记录,或改用 codex login --device-auth
- 需要提交日志时,只截取 codex-login.log 中与失败时间相邻的必要片段;删除 Token、Cookie、账号、本机路径和代理信息,绝不发送 auth.json
小白先准备什么
- 确认本机能正常打开 chatgpt.com 和 auth.openai.com(测试网络连通性)
- 确认代理/VPN 是全局模式还是分流模式,并核对 TLS / 企业 CA;不要分享代理账号或配置
- 知道 Codex 的本地状态默认位于 `~/.codex/`(可由 CODEX_HOME 改变),但不要打开、复制或发送 auth.json
- 准备一个可信且符合服务可用范围的备用网络,用于判断是否为当前网络策略问题
- Windows 用户:先记录完整退出码和缺失 DLL 名称,再判断是否需要安装 Visual C++ Redistributable
验收标准
- codex login status 返回退出码 0(表示已登录)
- 进入 Codex TUI 后能正常显示界面,不报 account/read failed
- 随便跑一条简单任务能正常返回结果
- 切换网络后重新登录仍然正常
Windows 特有问题
- exit code 3221225781(0xC0000135):表示 DLL_NOT_FOUND,不等于固定缺少 vcruntime140_1.dll;结合系统事件或缺失 DLL 名称判断,确认是 VC++ 组件后再装官方运行库。
- Token exchange failed:可能来自网络、代理、TLS / CA、系统时间、浏览器回调、登录态或安全软件拦截;按层排查,不要直接关闭整机防护。
- 浏览器回调 localhost 失败:检查是否有其他程序占用端口,或者用 codex login --device-auth 绕过
- 企业网络做 TLS 检查:按官方认证说明配置可信 CA,或让管理员核对拦截策略;不要绕过公司安全要求。
可复制排查提示词
只分享严格脱敏后的必要报错片段,不要发送 auth.json、Cookie、Token 或任何真实凭证:
我的 Codex 登录失败。以下内容已删除 Cookie、Token、API Key、账号信息和本机私有路径。
必要报错片段:
```
<只粘贴相关错误,敏感值写成 <REDACTED>>
```
我的环境:
- 操作系统:<Mac/Windows/Linux>
- 网络环境:<家庭/公司/其他,不提供代理凭证>
- 之前是否登录成功过:<是/否>
- codex login status 摘要:<脱敏后粘贴>
请帮我:
1. 判断是网络、登录态还是系统依赖问题
2. 给出最小修复步骤
3. 需要清理凭据时先说明影响和备份方式
4. 不要要求我提供任何真实凭证
常见误区
- 误区:反复执行 codex login 就能修好 → 先看 `codex login status` 和具体错误;需要重登时先执行 `codex logout`,不要直接发送或随意删除 `~/.codex/auth.json`
- 误区:能访问其他网站就说明登录链路正常 → 应按当前官方登录说明检查所需域名、浏览器回调和本机端口
- 误区:登录失败一定是 Codex 的 Bug → 网络、登录态、浏览器回调、系统时间和本机依赖都可能导致失败,应按错误逐项验证
- 误区:不断切换代理节点就能解决 → 使用稳定且符合服务可用范围的网络,不要用未知节点绕过限制或暴露登录凭证
- 误区:Windows 报错码看不懂就重装系统 → Visual C++ 运行库缺失只是可能原因之一,应结合 DLL 名称和系统事件确认
还卡着?
仅把删除凭证、客户数据和环境变量值后的必要截图、日志片段、需求说明或当前页面链接发到 zhemuy@gmail.com。