Codex迁移陷阱:账号登录后请求却走中转解决方案
前言
最近在将 Codex 从第三方 API 中转站迁移到官方 ChatGPT 账号时,遇到了一个配置问题。明明已经用官方 Plus 账号完成登录,每次发送请求却依然返回 401 Unauthorized:
unexpected status 401 Unauthorized:
{
"code":"INVALID_API_KEY","message":"Invalid API key"
},
url: https://...中转站.com/v1/responses,
cf-ray: a1adf952aef7cf12-SJC,
request id: c64faec8-54bc-4723-8862-1761785f3cc76
而日志中的请求地址暴露了真正的问题:
url: https://中转站.com/v1/responses
登录的是官方账号,请求却依然发往旧的中转站地址。
这篇文章完整记录了整个排查过程与底层原理,帮同样在迁移的朋友少走弯路。
问题现象
先交代一下背景:已完成官方 ChatGPT 账号登录,Plus 订阅状态正常,登录态也没有问题。但执行任何 Codex 命令都会报 INVALID_API_KEY 错误。
关键线索在日志里的请求 URL:
https://中转站.com/v1/responses
OpenAI 官方接口的域名应该是 api.openai.com,而不是第三方中转站域名。这说明 Codex 根本没有使用官方 Provider。
第一反应:是不是登录没生效?
大多数人遇到这个问题的第一反应都是——是不是登出不干净?于是反复执行:
codex logout
codex login
重新登录后问题依旧。这就排除了登录状态的问题,说明根因在别处。
真正原因:config.toml 中残留的 Custom Provider 配置
打开 Codex 配置文件:
# macOS / Linux
vim ~/.codex/config.toml
Windows
通常位于 C:\Users...用户名>.codex\config.toml
会发现类似这样一段配置:
model = "gpt-5.6-sol"
model_provider = "custom"
[model_providers.custom]
name = "custom"
wire_api = "responses"
requires_openai_auth = true
base_url = "https://中转站.com/v1"

问题就出在这里。
容易误解的参数:requires_openai_auth = true
很多人看到这个参数会以为"开启了官方认证 = 使用官方接口",其实完全不是。
它的真实含义是:
使用 OpenAI 登录获取的身份凭证(Token),但请求仍然发送到 custom provider 指定的地址。
用流程图表示更直观:
OpenAI 登录
│
▼
获取 Access Token
│
▼
请求发往 max.jojocode.com ← 仍然是中转站
而不是大家直觉中的:
OpenAI 登录
│
▼
请求发往 api.openai.com
登录身份和请求目的地是两个完全独立的配置项。
Codex 的请求路由逻辑
Codex 发请求时的判断流程大致如下:
发起请求
│
▼
读取 model_provider 配置
│
├── model_provider = "openai" → 走官方 api.openai.com
│
└── model_provider = "custom" → 走 [model_providers.custom]
中的 base_url 地址
由于配置里写死了 model_provider = "custom" 和 base_url = "https://max.jojocode.com/v1",无论你登录哪个账号,请求最终都会被发往中转站。官方登录只是提供了一个 Token,这个 Token 在中转站那边验证不通过,自然就报了 INVALID_API_KEY。
解决方案
第一步:清理 Custom Provider 配置
删除 config.toml 中以下整段内容:
model = "gpt-5.6-sol"
model_provider = "custom"
[model_providers.custom]
name = "custom"
wire_api = "responses"
requires_openai_auth = true
base_url = "https://max.jojocode.com/v1"
其余配置(plugins、mcp_servers、playwright、desktop、projects 等)全部保留即可。
删除后,Codex 会回退到默认的 openai provider,请求自然就走官方 api.openai.com 了。
第二步:重新登录
codex logout
codex login
第三步:完全重启 Codex
注意:不是简单关闭窗口。
需要确保所有相关进程都退出:
- 退出 Codex 主程序(托盘图标也要退出)
- 关闭 VS Code / 编辑器中的 Codex 插件
- 关闭所有正在运行的终端
重新打开后再验证。
第四步:CC-Switch修改

使用官方的账号后,要选择OpenAI Official供应商,防止之后启动再次转接到其他的中转供应商。
最后重启Codex即可解决问题
快速自检:怎么判断是不是还在走中转?
看日志里的请求 URL 是最直接的方法:
| 请求地址包含 | 说明 |
|---|---|
api.openai.com |
官方接口,正常 |
jojocode.com 等第三方域名 |
仍然在走中转站 |
只要日志里出现非官方域名,就说明 Provider 或 Base URL 配置还没改干净。
总结与思考
这次踩坑的核心可以用一句话概括:
登录的是官方账号 ≠ 请求走官方接口。
打个比方:登录身份就像身份证,请求地址就像快递收件地址。身份证是真的,但快递仍然寄到了旧地址,对方当然收不到。
INVALID_API_KEY 这个错误信息也很有迷惑性——它会引导你去排查 API Key、账号权限,而真正的问题藏在 Provider 配置里。
排查同类问题的经验法则: 遇到 API 鉴权报错,先看请求 URL 对不对。地址都错了,再怎么折腾 Key 和登录都是徒劳。
希望这篇记录能帮到同样从中转站迁移到官方 Codex 的朋友。如果你也遇到了类似的问题,欢迎在评论区交流。
更多推荐

所有评论(0)