无法使用谷歌邮箱登录的codex账号 - Codex
Quick fix
升级 cc-switch 至 v3.16.1+,或手动修改 ~/.codex/auth.json 恢复 auth_mode 为 chatgpt 并清空 OPENAI_API_KEY。
Symptom
Section titled “Symptom”关闭cc switch 的codex 配置,也无法使用谷歌邮箱登录的codex账号cc-switch 在接管或切换 Codex 供应商时,会修改 `~/.codex/auth.json` 和 `config.toml`。早期版本(v3.16.0 及之前)将第三方 API Key 直接写入 `auth.json` 的 `OPENAI_API_KEY` 字段,导致 Codex 强制识别为 `auth_mode="ApiKey"`,从而破坏 ChatGPT 官方 OAuth 登录态,引发 Fast mode 不可用、用量查询失败或模型列表空白等问题。此外,在清除配置或切换回官方供应商时,残留的 `OPENAI_API_KEY` 也会导致状态混乱。
v3.16.1 引入了按应用解析凭据和 provider-scoped 认证逻辑,修复了大部分凭据覆写问题。但对于 `codex resume` 不读取最新 `model_provider` 或 Desktop 端 `id_token` 半过期等边缘情况,仍需手动干预或检查本地缓存状态。
升级 cc-switch 至 v3.16.1 或更高版本,以启用按应用解析凭据和 provider-scoped 认证逻辑。
若需恢复官方 ChatGPT 登录态,请手动编辑 `~/.codex/auth.json`,将 `auth_mode` 设为 `chatgpt` 并清空 `OPENAI_API_KEY`。
// ~/.codex/auth.json{"auth_mode": "chatgpt","OPENAI_API_KEY": null}若使用自定义供应商且需保留官方登录功能,请在 `config.toml` 中使用 `env_key` 或 `experimental_bearer_token` 传递 API Key,避免覆写 `auth.json`。
// ~/.codex/config.toml[model_providers.custom]name = "custom"base_url = "https://example-gateway/v1"env_key = "MY_PROVIDER_API_KEY"requires_openai_auth = false
Affected Versions
Section titled “Affected Versions”Source Issues
Section titled “Source Issues”本页汇总自 7 个真实 issue
- #1358codex.app 和cc switch 问题
- #2776Codex用量查询不显示
- #3034Codex custom provider API key is written to auth.json, forcing auth_mode=ApiKey and conflicting with ChatGPT login/Fast mode
- #3596Codex App Enhancements can preserve OAuth but still consume Auth quota instead of API billing
- #3903Codex official provider does not clear stale OPENAI_API_KEY from auth.json
- #5679Bug: Codex Desktop 模型选择器空白 — `/v1/models` 响应格式不兼容
- #6608切换到第三方Codex provider 后,codex resume 不生效(新建会话正常)
- 为什么切换第三方供应商后,Codex Desktop 的 Fast mode 或远程控制不可用?
- 因为旧版 cc-switch 将 API Key 写入 `auth.json` 导致 `auth_mode` 变为 `ApiKey`,Codex 判定为未使用官方登录。升级至 v3.16.1+ 或手动保留 `auth_mode: chatgpt` 即可解决。
- 为什么 `codex resume` 无法使用自定义供应商?
- `codex resume` 默认读取会话创建时记录的 provider,而非 `config.toml` 顶层当前的 `model_provider`。需在启动时显式传入 `-c 'model_provider="custom"'` 参数。
- 为什么 Codex Desktop 模型选择器空白?
- 可能是 `/v1/models` 响应格式不兼容,或 `auth.json` 中的 `id_token` 已过期(即使 `access_token` 仍有效)。请检查 JWT 的 `exp` 字段并重新登录。
这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。