auth.json又填充了已有账号的auth.json Codex
Quick fix
升级到 v3.17.0+,并关闭「非接管切换时保留官方登录」;auth.json 被旧账号/旧 key 覆盖时,先备份再升级验证。
Symptom
Section titled “Symptom”尝试删除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 碰撞,属于两个独立变体。
先备份当前 `~/.codex/auth.json`(如存在)以及 cc-switch 配置目录,避免后续操作进一步覆盖。
将 cc-switch 升级到至少 v3.17.0;v3.16.1 修复了新建/切换时的覆盖路径,v3.17.0 加固了供应商 key 隔离,不要停留在 v3.16.0。
在 cc-switch【设置】→【Codex 增强】/【应用增强】中关闭「非接管切换时保留官方登录」;#5086 确认关闭后 auth 不再被固定覆盖。
新建 openai official 后留空保存,再去编辑确认 auth.json 不自动填充旧账号;若仍发生,检查是否开启了代理接管/官方鉴权保留,并记录版本、设置和复现步骤。
若 Codex 桌面端第三方模型显示「自定义」:先在 Codex 桌面端登录一次官方 ChatGPT,确保 `~/.codex/auth.json` 有官方凭据;开启保留官方登录;确认第三方供应商开启本地路由/路由接管;完全退出并重启 Codex 桌面端。
如果退出 cc-switch 后 Codex 每次要求重新登录 ChatGPT,备份 auth.json 后升级到包含 #6277 修复的新版本;临时可开启路由后复制粘贴 `~/.codex/auth.json` 进行覆盖。
若保存 auth.json 报 `Permission denied`:在终端运行 `whoami` 确认当前用户,运行 `ls -ld ~/.codex` 查看目录属主和权限,用 `chown`/`chmod` 将该目录改为当前用户可写。
Affected Versions
Section titled “Affected Versions”Source Issues
Section titled “Source Issues”本页汇总自 22 个真实 issue
- #129保存失败:创建临时文件失败: /Users/moss/.codex/auth.json.tmp.1760581097714113000: Permission denied (os error 13)
- #188总是会出现登录codex覆盖前一个配置的情况
- #290codex auth.json内配置的api密钥无法被识别
- #717cc switch支持Sign in with ChatGPT么?
- #2157今天打开 cc switch后,codex得官方渠道上一直有一个 会话已过期,无法消除
- #2977codex-cli 0.132.0 切换实效
- #3451更新3.16.0版本后无法切号,新建路由配置auth.json始终写入已有账号的json内容,等于无法新建账号,3.15.0版本没有这个问题
- #34913.16.0版本切换服务商会覆盖auth.json中的OPENAI_API_KEY
- #3505codex第三方供应商的key无法切换。不同base_url的key都变成一样了
- #3543codex掉登录
- #3657codex桌面端接入deepseek模型后,在codex上模型显示自定义,无法切换 deepseek flash 和 pro 模型
- #3672codex 同一个应商切换模型问题
- #3919配置了xiaomi mimo的模型,但是在codex桌面端选择模型时无法选择
- #4099重启电脑后,codex auth官方登录被清空了
- #4548codex不可切换模型
- #4688codex每次打开,都要登录chatgpt
- #4881连了自定义模型之后,切换不了模型
- #5086codex第三方供应商的key无法切换,不同供应商都变成一个KEY了
- #5161codex客户端第三方多模型选择能力不显示
- #5866api key 混乱
- #5885Codex OAuth: Team workspace members overwrite each other in OAuth Auth Center
- #6000彻底退出ccswitch和codex时,第二次打开要求重新登录chatgpt账号
- 哪个旧版本切换是可用的?
- 多个报告提到 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。本站不分发任何软件。