Codex 登录报「Token exchange failed」怎么办:浏览器登录成功却回不到 Codex,设备码、回调端口与公司证书逐项排查

Codex 登录时浏览器显示成功,回到 Codex 却报 Token exchange failed?官方没有单独解释这条报错,但认证文档给了几条出路:设备码登录、转发 1455 回调端口、设置公司根证书、查看 codex-login.log。本文按官方文档整理排查顺序。

NNathaniel bigo··原创首发·AI 辅助撰写
10 分钟读完
资料核对于 2026-10-27 · 依据官方文档与公开资料整理 Plus 账号
本文根据 Codex 官方文档《Authentication》、环境变量文档和 OpenAI 帮助中心网络建议文章整理,资料核对于 2026-10-27。官方没有专门解释 Token exchange failed 这条报错,本文写的是官方文档里「浏览器登录不顺利时」的做法。配图为本站整理的示意图,不是软件截图。

适用于谁

  • 在 Codex 桌面 App、命令行 CLI 或 IDE 插件里点了登录,浏览器已经显示登录成功,回到 Codex 却提示登录失败、token_exchange_failed 的人;
  • 在远程服务器、虚拟机、没有浏览器的环境里装 Codex,登录不了的人;
  • 公司网络、有代理的网络里登录不了的人。

结论先说

  1. 先换登录方式试一次:在命令行里运行 codex login --device-auth(设备码登录,官方标注 beta)。官方认证文档说,浏览器登录界面可能不好使的两种情况是——在远程或无头环境里运行,以及你的网络配置阻止了 Codex 用来接收登录令牌的 localhost 回调;这两种情况官方都推荐设备码。
  2. 设备码选项没有出现,要先在 ChatGPT 的安全设置(个人账号)里开启设备码登录;工作区账号由管理员在工作区权限里开。
  3. 想继续用浏览器登录、但机器在远程:先在本机用 ssh -L 1455:localhost:1455 用户@远程主机 把回调端口转发过来,再在这个 SSH 会话里运行 codex login。
  4. 公司网络有 TLS 代理:登录前把 CODEX_CA_CERTIFICATE 设为公司根证书的 PEM 文件路径。
  5. 还不行:看 codex-login.log,并检查官方状态页 status.openai.com。

Codex 登录失败:按情况选方案

图:本站根据 Codex 官方文档:Authentication 整理的示意图

报错原文怎么读

在公开的问题反馈里能看到这类写法(不同版本、不同平台文字略有差异):

text
Login failed
token_exchange_failed
Token exchange failed: error sending request for url (https://auth.openai.com/oauth/token)

按字面意思:登录的第二步,拿浏览器返回的授权码去换令牌(token)时失败了。冒号后面的 error sending request for url 说明这次请求没有成功发出或没有收到回应。官方认证文档介绍登录流程是:运行登录后会打开浏览器窗口,登录完成后浏览器把凭据返回给 Codex。这个「返回」靠的是本机的回调端口(文档里写的默认是 localhost:1455),所以回调被网络配置挡住时,官方明确推荐换设备码。至于你这一次具体是哪一环出错,官方文档没有写,本文也不替官方下结论。

一、设备码登录:最先试的办法

官方认证文档里的步骤(本站转述):

  1. 在 ChatGPT 安全设置(个人账号)或 ChatGPT 工作区权限(工作区管理员)里开启设备码登录;
  2. 在运行 Codex 的终端里,二选一:在交互式登录界面选 Sign in with Device Code,或直接运行 codex login --device-auth;
  3. 在浏览器打开终端里给出的链接,登录,然后输入一次性代码。

设备码登录 4 步

图:本站根据 Codex 官方文档:Authentication 整理的示意图

官方还说明:如果设备码登录在你的环境里也不能用,就用下面的两个备用办法。

二、两个备用办法

办法 A:在有浏览器的机器上登录,再复制登录缓存

  1. 在能打开浏览器登录的机器上运行 codex login;
  2. 确认登录缓存文件 ~/.codex/auth.json 已生成;
  3. 把它复制到无头机器的同一路径 ~/.codex/auth.json。

官方给的 SSH 复制写法:

shell
ssh user@remote 'mkdir -p ~/.codex'
scp ~/.codex/auth.json user@remote:~/.codex/auth.json

auth.json 里是访问令牌,要当成密码对待:不要提交到代码仓库,不要贴进工单或聊天。如果你的系统把登录信息存进了系统凭据库而不是这个文件,这个办法可能不适用,存储位置由配置项 cli_auth_credentials_store 决定(file、keyring、auto、ephemeral)。

办法 B:转发 localhost 回调端口

如果本机和远程主机之间能做端口转发,可以继续用标准的浏览器登录:

shell
ssh -L 1455:localhost:1455 user@remote

然后在这个 SSH 会话里运行 codex login,按终端打印的地址在本机浏览器里完成登录。

三、有 TLS 代理或私有根证书

公司网络会解密再转发 HTTPS 流量时,Codex 需要信任公司的根证书。官方认证文档「Custom CA bundles」一节:登录之前把 CODEX_CA_CERTIFICATE 设为 PEM 证书包路径;没设置时 Codex 退而使用 SSL_CERT_FILE;同样的设置对登录、普通 HTTPS 请求和安全 WebSocket 连接都生效。官方环境变量文档也列了这两个变量,并写明 CODEX_CA_CERTIFICATE 优先于 SSL_CERT_FILE。

shell
export CODEX_CA_CERTIFICATE=/path/to/corporate-root-ca.pem
codex login

证书文件要向公司 IT 要。官方文档没有给 Windows PowerShell 的写法,不要把 export 直接粘进 PowerShell。

四、网络要放行哪些地址

OpenAI 帮助中心「Network recommendations」文章给 IT 部门列了需要放行的域名,其中包括 .auth.openai.com、.chatgpt.com、*.openai.com 等;还写明如果有网页过滤,要确认没有返回意外内容。报错里的地址是 auth.openai.com 的话,把这篇官方文章发给 IT 最直接。同一篇文章里的「怎么知道是不是网络的问题」也值得先做:只有你这一台出问题还是整个网络都这样;把电脑切到手机热点后问题是否消失。详细对照见 /guides/codex-stream-disconnected-before-completion。

五、其他会让登录失败的情况

这几条在站内已有文章,不重复展开,见 /guides/codex-cannot-sign-in-send-message-connect:

  • 邮箱密码登录的账号,必须先开启多重验证(MFA)才能用 Codex 云端;
  • 之前在 CLI 或插件里退出过登录,需要重新登录,因为 CLI 和插件共用同一份登录缓存;
  • 被工作区管理员用 forced_login_method、forced_chatgpt_workspace_id 限制了登录方式或工作区,凭据不匹配时 Codex 会登出并退出。

六、收集日志再反馈

直接运行 codex login 时,Codex 会在日志目录下写一个专门的 codex-login.log,官方说它用来排查浏览器登录或设备码登录失败,也是官方支持要登录日志时要的东西。分享日志前先检查,别带上密钥或令牌。可以到 GitHub 的 openai/codex 看有没有相同问题。

常见问题

Q:用 API 密钥登录会不会绕过这个问题?

官方认证文档说 Codex 支持 ChatGPT 账号和 API 密钥两种登录方式,命令行用 printenv OPENAI_API_KEY | codex login --with-api-key。API 密钥按 API 标准价格计费,不使用 ChatGPT 套餐里包含的额度,部分依赖 ChatGPT 工作区的功能会受限。是否适合你,要看自己的需求。

Q:怎么确认现在登录的是什么?

命令行运行 codex login status;桌面 App 和 IDE 插件打开个人资料菜单可以看到当前账号或 API 密钥状态。

Q:登录好了,但额度不够用?

见 /guides/codex-usage-limits,想开通 ChatGPT Plus 可以看 /chongzhi/chatgpt-plus。

Q:是不是官方服务出问题了?

先看状态页,读法见 /guides/chatgpt-down-check-status-page。

参考资料

  • Codex 官方文档:Authentication — https://learn.chatgpt.com/docs/auth
  • Codex 官方文档:Environment variables — https://learn.chatgpt.com/docs/config-file/environment-variables
  • OpenAI 帮助中心:Network recommendations for ChatGPT errors on web and apps — https://help.openai.com/en/articles/9247338-network-recommendations-for-chatgpt-errors-on-web-and-apps
  • OpenAI 状态页 — https://status.openai.com/
需要开通或续费?ChatGPT Plus 充值 →

Nathaniel 的更多内容

  1. 01

    Claude 登录报错对照(账号被停用以外):There was an error logging you in、收不到登录邮件、验证码、Google 登录的处理

    Claude 登录不上,除了账号被停用,还有登录出错、收不到登录邮件、在另一台设备点链接、想设密码、Google 登录异常等情况。本文按官方登录帮助整理各提示的原文和处理,账号被停用另见专门文章。

    Claude0
  2. 02

    Claude 提示「Something went wrong」怎么办:限额、消息过长、容量紧张、登录出错的官方报错对照

    Claude 报 Something went wrong 或别的错误?官方《Troubleshoot Claude error messages》把常见错误分成限额、消息过长、登录出错、容量紧张四类,并给了各自的原文和处理。本文逐项整理,并说明官方没有单独解释笼统的出错提示。

    Claude0
  3. 03

    DeepSeek 除了「服务器繁忙」还有哪些报错:网页版提示对照和 API 错误码 400、401、402、422、429、500、503

    DeepSeek 报错不只有服务器繁忙。本文把官方常见问题里的网页版提示(上传失败、运行环境异常、账号停用、邮箱域名不支持)和 API 错误码汇成对照表,给出官方的原因和处理,并链到各篇详细文章。

    其他 AI 工具0
  4. 04

    Gemini 提示「此账号无法使用」(Can't access this service)怎么办:账号类型、年龄、Family Link 与工作学校账号的官方条件

    Gemini 提示 Can't access this service,意思是这个账号目前不符合使用条件。官方写明了可用的账号类型、年龄要求和 Family Link 账号不能用。本文按账号类型对照,并给出 Something went wrong 的处理。

    Gemini0
  5. 05

    Gemini Pro 免费试用、学生优惠到期后怎么办:自动转付费、重新验证 SheerID、取消后会失去什么

    Google AI Pro 学生优惠或试用到期后会怎样?官方说会自动转为正常付费的 Plus 或 Pro,会提前通知;没有按时重新验证 SheerID 会失去优惠。本文按官方帮助中心整理到期规则、取消后失去的内容和第三方订阅的处理。

    Gemini0
  6. 06

    Gemini 怎么切换模型:Flash-Lite、Flash、Pro、Argon 的选择步骤、思考等级和自动选择

    Gemini 网页版怎么手动切换模型?官方步骤是点聊天框底部当前模型再选,需要有 Google AI 方案,带锁图标的要升级。本文按官方说明整理各方案可选模型、思考等级默认值和自动模型选择。

    Gemini0

同产品的其他教程

  1. 01

    Codex 常见报错总表:429、401、登录失败、连接中断、缺少环境变量、沙箱、Computer Use、远程控制,看到哪条读哪篇

    把 Codex 最常见的报错和问题汇成一张对照表:429、401、Token exchange failed、stream disconnected、missing environment variable、Windows 沙箱失败、Computer Use 找不到、远程控制连不上,各给一句处理方向并链到详细文章。

    ChatGPTCodex0
  2. 02

    Codex 插件在哪装:桌面 App 的 Plugins 标签、CLI 的 /plugins、IDE 为什么没有,以及插件和技能、MCP 的区别

    Codex 的插件在 ChatGPT 桌面 App 的 Plugins 标签里装,命令行输入 /plugins,IDE 插件不支持。本文按官方文档讲各入口怎么装、装完怎么用、用 API 密钥登录时有什么限制,以及插件、技能、MCP 服务器的区别。

    ChatGPTCodex0
  3. 03

    Codex Windows 版怎么下载安装:ChatGPT 桌面 App 官方入口、winget 命令、开发工具与 WSL 设置

    Windows 上的 Codex 现在是 ChatGPT 桌面 App 里的一个入口。官方给了微软商店下载地址和 winget 安装命令,原生用 PowerShell 加 Windows 沙箱,也可切到 WSL2。本文按官方文档讲安装、登录、建议装的开发工具、管理员运行和常见小问题。

    ChatGPTCodex0
  4. 04

    Codex 远程控制授权失败怎么办、远程 SSH 怎么用:手机配对电脑、Remote Control、连接 SSH 主机的官方步骤

    用手机远程控制电脑上的 Codex,配对不成功或授权失败?官方 Remote connections 文档写了配对步骤和五类常见问题,也讲了怎么把桌面 App 连到 SSH 主机、怎么在主机之间交接对话。本文按官方文档整理,并给出一张排查对照图。

    ChatGPTCodex0
  5. 05

    Codex 沙箱初始化失败怎么办(Windows):沙箱设置失败、错误 1385、Everyone 可写警告与 MXC、elevated、unelevated 怎么选

    Windows 上 Codex 沙箱设置失败、命令跑不起来、提示错误 1385 或 Everyone 可写?官方文档列了常见原因和处理,本文逐项整理,并说明 mxc、elevated、unelevated 三种实现的区别。

    ChatGPTCodex0
  6. 06

    Codex 找不到 Computer Use 怎么办:插件在哪装、地区限制、macOS 权限与 Windows 前台运行说明

    ChatGPT 桌面 App 的 Computer Use 能让 Codex 看屏幕、点鼠标、操作桌面应用,但官方写明它只在支持的地区可用,需要装 Computer Use 插件并开启开关。本文按官方文档讲插件在哪装、macOS 要给哪两个权限、Windows 为什么会占用前台,以及找不到时的排查。

    ChatGPTCodex0

0 条评论

登录 后参与评论

还没有评论,来抢沙发~