跳转到内容

auth.json又填充了已有账号的auth.json Codex

Quick fix

升级到 v3.17.0+,并关闭「非接管切换时保留官方登录」;auth.json 被旧账号/旧 key 覆盖时,先备份再升级验证。

报错原文
尝试删除auth.json,只保留{},保存后,重新编辑进来,auth.json又填充了已有账号的auth.json

这是 cc-switch 对 Codex `auth.json` 的多条写入路径相互叠加导致的问题,而不是 Codex 本身损坏。v3.16.0 引入的 Codex 供应商切换/接管回归会让新建 openai official 后编辑时加载已有账号的 auth.json(#3451/#3491/#3505);而开启「非接管切换时保留官方登录」时,切换第三方 provider 会把打开开关时的 provider API key 带进其他供应商,导致所有供应商共用一个 key(#5086)。另外代理接管的恢复逻辑在退出 cc-switch 时用旧快照覆盖 `auth.json`,使官方 ChatGPT 登录丢失或每次打开 Codex 都要重新登录(#6000/#4099/#3543/#4688)。编辑弹窗的 `hasLoadedLive` 只是全局布尔值、未与 provider.id 绑定,会在不卸载弹窗时把上一个 provider 的 key 显示到下一个 provider(#5866,v3.19.0 仍有用户复现)。此外 #129 是 `~/.codex` 权限不足导致 `auth.json.tmp` 创建失败;#5885 是 OAuth Auth Center 同 Team workspace 账号 key 碰撞,属于两个独立变体。

  1. 先备份当前 `~/.codex/auth.json`(如存在)以及 cc-switch 配置目录,避免后续操作进一步覆盖。

  2. 将 cc-switch 升级到至少 v3.17.0;v3.16.1 修复了新建/切换时的覆盖路径,v3.17.0 加固了供应商 key 隔离,不要停留在 v3.16.0。

  3. 在 cc-switch【设置】→【Codex 增强】/【应用增强】中关闭「非接管切换时保留官方登录」;#5086 确认关闭后 auth 不再被固定覆盖。

  4. 新建 openai official 后留空保存,再去编辑确认 auth.json 不自动填充旧账号;若仍发生,检查是否开启了代理接管/官方鉴权保留,并记录版本、设置和复现步骤。

  5. 若 Codex 桌面端第三方模型显示「自定义」:先在 Codex 桌面端登录一次官方 ChatGPT,确保 `~/.codex/auth.json` 有官方凭据;开启保留官方登录;确认第三方供应商开启本地路由/路由接管;完全退出并重启 Codex 桌面端。

  6. 如果退出 cc-switch 后 Codex 每次要求重新登录 ChatGPT,备份 auth.json 后升级到包含 #6277 修复的新版本;临时可开启路由后复制粘贴 `~/.codex/auth.json` 进行覆盖。

  7. 若保存 auth.json 报 `Permission denied`:在终端运行 `whoami` 确认当前用户,运行 `ls -ld ~/.codex` 查看目录属主和权限,用 `chown`/`chmod` 将该目录改为当前用户可写。

ToolCodex
Version3.16.0 - 3.19.0(受影响区间;v3.16.1/v3.17.0 修复部分路径,#5866 在 v3.19.0 仍复现)
PlatformsWindowsmacOS

本页汇总自 22 个真实 issue

哪个旧版本切换是可用的?
多个报告提到 v3.15.0(#3505)没有 key 串号问题,v3.12.2 修复了 #188 的登录覆盖。模型选择器显示「自定义」是 Codex 桌面端限制,旧版本也不能真正解决;建议升级到 v3.17.0 并关闭保留官方登录后验证。
配置了 auth.json 为什么测试模型一直提示缺失 api key?
测试模型、代理模式都不支持官方账号登录(防止封号)。先添加 OpenAI 官方供应商,切换到官方后到终端运行 `codex` 执行一次登录流程,token 会写入 `auth.json`,之后切换供应商应正常工作。
为什么 Codex 桌面端模型选择器显示自定义/灰色无法切换?
这是 Codex 桌面端上游限制:需要官方 ChatGPT 登录态才显示第三方自定义模型。先在 Codex 桌面端登录一次官方账号,开启「切换第三方时保留官方登录」,确认第三方供应商开启本地路由/路由接管,再完全退出并重启 Codex 桌面端;终端运行 `codex debug models` 能看到模型说明数据层正常。
为什么退出 cc-switch 后 Codex 每次都要重新登录 ChatGPT?
退出 cc-switch 时代理接管的恢复逻辑可能用旧快照覆盖 `auth.json`(#6277),如果你在接管开启后才登录,登录就会被覆盖。升级到包含 #6277 修复的版本;临时可退出前备份 auth.json,或开启路由后复制粘贴 auth.json 覆盖。
为什么 Codex OAuth Auth Center 同 Team workspace 第二个成员会覆盖第一个?
账号存储键疑似基于 workspace/account id 而非唯一用户凭据 id,同 workspace 成员会发生碰撞。独立 workspace 账号正常;该问题尚未修复,需要等待后续处理。
保存 auth.json 报 Permission denied 怎么办?
在终端执行 `whoami` 确认当前用户,再执行 `ls -ld ~/.codex` 查看目录属主和权限;用 `chown`/`chmod` 把 `~/.codex` 改为当前用户可写即可。

这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。