昨天手贱点了退出登录,结果 Codex 桌面版就疯了——每次登录都弹手机验证。
找接码平台?不稳。万一号码过期,后面 OpenAI 再触发一次验证,账号直接废。
折腾了一圈发现,根本不用死磕桌面 App,绕到终端用 CLI 登录,一条命令就能把桌面版救回来。
下面是完整流程,目前测试有效,不知道能持续多久。
1. 转机:问题不在账号,在登录入口
桌面版和 CLI 的登录流程不一样。桌面版走 OAuth 网页授权,OpenAI 风控较严,容易触发手机验证。CLI 走的是本地 HTTP 服务回调,通常不会被拦。
而且两者共用同一份本地凭证——CLI 登录成功,桌面版也能直接用。
2. 具体操作:四步搞定
2.1 关掉桌面版
这里说的不是点窗口左上角的红叉,那样 App 还在后台运行。
要用 Command + Q 彻底退出进程。这样做是为了让 App 下次启动时重新加载本地凭证文件,而不是沿用内存里已经失效的旧状态。
2.2 用 CLI 完成登录
打开终端,执行:
bashcodex login你会看到类似这样的提示:
bashStarting local login server on http://localhost:1455.同时浏览器会自动弹出 OpenAI 的登录页面。正常输入账号密码完成认证即可。
回到终端,如果显示 Successfully logged in,说明认证已经通过。
2.3 验证凭证是否存盘
执行以下命令确认凭证文件已经生成:
bashls -la ~/.codex/auth.json正常情况下你会看到这个文件的详细信息,包括大小和时间戳。这个 JSON 文件就是 Codex 的登录态——桌面版和 CLI 都依赖它来判断当前用户是否已认证。
2.4 从终端唤起桌面版
不要去启动台或 Dock 栏手动打开 App。直接在终端执行:
bashcodex app这条命令会启动桌面版并自动挂载当前用户目录。因为凭证文件刚刚由 CLI 写入,桌面版启动后会立即识别到有效的登录状态,跳过验证环节直接进入主界面。
3. 为什么这招管用
一句话:桌面版和 CLI 共享同一个凭证文件 ~/.codex/auth.json。CLI 登录不触发手机验证,写入凭证后桌面版直接能用。前门进不去,从后门绕。
这个思路也适用于其他开发工具——GUI 走不通的时候,试试 CLI。
夜雨聆风