codex 会话已过期 - Codex
Quick fix
备份配置后运行脚本同步 auth.json 的 token 至 cc-switch 数据库与本地文件,或关闭用量刷新防止旧数据覆盖。
Symptom
Section titled “Symptom”codex 会话已过期cc-switch 的 Codex OAuth 数据存储于 codex_oauth_auth.json、~/.codex/auth.json 和 cc-switch.db 三处。早期版本升级未迁移 providerType 和 authBinding 字段,或开启用量刷新时旧数据覆盖了新的 oauth.json,会导致三处状态不一致,前端路由错误或 token 失效。此外,同 Team 多账号登录时若去重逻辑依赖 Team ID,也会导致账号被覆盖。
在终端执行 codex login 确保 ~/.codex/auth.json 中的 OAuth token 有效,随后通过菜单栏完整退出 cc-switch。
备份配置目录下的 codex_oauth_auth.json 和 cc-switch.db 文件。
运行 Python 脚本从 ~/.codex/auth.json 提取 token 写入 codex_oauth_auth.json,并定位 codex 官方 provider 补全 cc-switch.db 中的 providerType 与 authBinding 字段。目标文件结构如下:
~/Documents/configs/cc-switch/codex_oauth_auth.json {"version": 1,"accounts": {"<account_id>": {"account_id": "<account_id>","email": "<email>","refresh_token": "<refresh_token>","authenticated_at": <timestamp>}},"default_account_id": "<account_id>"}重启 cc-switch。若遇到开启用量刷新导致 oauth.json 被旧数据覆盖的问题,请在重新 OAuth 登录后暂时关闭用量查询功能。
Affected Versions
Section titled “Affected Versions”ToolCodex
Version3.13.0 - 3.20.0
PlatformsWindowsmacOS
Source Issues
Section titled “Source Issues”本页汇总自 5 个真实 issue
- 同 Team 多个官方账号认证后,为什么只能保留最后登录的一个?
- 账号去重逻辑可能使用了 Team 或 workspace 维度的 ID,而非真正的 ChatGPT account ID,导致同 Team 下的后登录账号覆盖了前一个。
- 重新登录 Codex 后,开启用量刷新为何又提示会话过期?
- 开启用量刷新时,cc-switch 可能会用缓存中的旧数据覆盖最新的 oauth.json,建议重新登录后暂时关闭用量查询功能。
这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。