codex cli登录失败需分层诊断:先执行codex --version和codex login status获取基础状态,再根据终端卡顿、401/403、空白弹窗等现象定位认证、授权、回调或用量控制层问题,结合环境(wsl/ssh/docker等)和关键词(token_exchange_failed等)选择对应排查路径。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

Codex CLI登录失败时,不能只盯着“重装”或“换网络”,必须先判断失败发生在认证、授权、回调还是用量控制哪一层,再针对性处理。终端卡在Waiting…、浏览器报403、弹窗空白、提示401或直接无反应,每种现象对应不同故障层,处理路径完全不同。
先保留最小诊断集
在退出登录、删配置或重装前,先执行这两条命令并记下完整输出:
codex --version → 确认 CLI 是否真正加载成功;
codex login status → 查看当前是否残留旧登录状态,或返回 Not logged in / user not found / 401 等关键线索。
同时记录:你用的是本机终端、WSL、SSH、Docker 还是远程 IDE;是 ChatGPT 账号登录,还是已尝试 API Key;错误文本中是否含 request ID、token_exchange_failed、cc-switch-model-catalog.json、os error 10013 等关键词。这些信息决定后续走哪条排查链路。
看浏览器有没有打开
执行 codex login 后,终端没输出 http://localhost:1455/callback?code=,且浏览器完全没反应——说明 OAuth 监听根本没启动。
这时不是网络问题,而是 CLI 初始化失败或系统阻止了本地服务绑定。Windows 用户立即检查端口保留策略:netsh interface ipv4 show excludedportrange protocol=tcp,若 1359–1458 在列表中,运行 net stop winnat && net start winnat 即可释放 1455 端口。
Linux/macOS 用户检查是否被防火墙或 systemd-resolved 占用:运行 sudo lsof -i :1455 或 ss -tuln | grep :1455,若有进程占用,kill -9 对应 PID。
浏览器成功但终端一直等待
这是 WSL、SSH、Docker、Remote-SSH 环境的典型症状:浏览器完成授权,但回调地址 http://localhost:1455/callback?code=xxx 根本无法回传到 CLI 进程所在环境。
第一步:停止当前卡住的登录流程,按 Ctrl+C 中断;
第二步:改用设备码登录 → 执行 codex login --device-auth;
第三步:用手机或另一台能联网的电脑打开终端输出的 https://microsoft.com/devicelogin,输入 8 位代码并完成授权;
【设备代码 10 分钟内有效,且仅可使用一次;切勿截图、发群、粘贴到非官方网页】。
这一步绕过全部本地回调链路,直接由 Microsoft 身份平台将 token 推送至 CLI,成功率接近 100%。
报 401 Unauthorized 或 403 Forbidden
方法一:先做受控重登
通过本地 Codex 或 OpenClaw OAuth 凭证直接调用 ChatGPT/Codex Responses 的 image_generation 工具来生成或编辑光栅图像,然后保存
codex logout → 清除当前内存中的 token;
codex login → 触发新 OAuth 流程;
若仍报 401,说明凭证已失效或账号被踢出组织,需重新走完整登录;
若报 403,说明身份已被识别,但权限不足——Team/Enterprise/Edu 账户必须用 OpenAI API Key 登录,不能走 ChatGPT 账号 OAuth。
方法二:强制用 API Key 登录(绕过所有网页流程)
先确保你有可用的 OpenAI API Key(TaoToken 控制台创建的 codex-ubuntu 类命名 Key 更佳);
执行 printf "sk-xxx" | codex login --with-api-key,注意 sk- 开头的 Key 必须为纯文本,不能带空格、换行、引号;
成功后 codex login status 应显示 Logged in as xxx@xxx.com。
清理残留认证状态
第一步:退出当前登录 → codex logout;
第二步:定位并删除 auth.json 文件:
Linux/macOS:直接删除 ~/.codex/auth.json;
Windows:删除 C:\Users\你的用户名\AppData\Roaming\codex\auth.json;
【不要只清空内容,必须删除整个文件;否则 Codex 会读取损坏结构继续报错】;
第三步:验证缓存已清除 → 运行 codex login status,必须返回 Not logged in;
若仍显示旧用户或报 user not found,说明存在多环境残留(如 WSL 子系统内独立的 /home/xxx/.codex),需进入对应环境重复第二步。










