跳转到内容

无法使用谷歌邮箱登录的codex账号 - Codex

Quick fix

升级 cc-switch 至 v3.16.1+,或手动修改 ~/.codex/auth.json 恢复 auth_mode 为 chatgpt 并清空 OPENAI_API_KEY。

报错原文
关闭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` 半过期等边缘情况,仍需手动干预或检查本地缓存状态。

  1. 升级 cc-switch 至 v3.16.1 或更高版本,以启用按应用解析凭据和 provider-scoped 认证逻辑。

  2. 若需恢复官方 ChatGPT 登录态,请手动编辑 `~/.codex/auth.json`,将 `auth_mode` 设为 `chatgpt` 并清空 `OPENAI_API_KEY`。

    // ~/.codex/auth.json
    {
    "auth_mode": "chatgpt",
    "OPENAI_API_KEY": null
    }
  3. 若使用自定义供应商且需保留官方登录功能,请在 `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
ToolCodex
Version未知
PlatformsmacOSWindows
为什么切换第三方供应商后,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。本站不分发任何软件。