Codex CLI 登录失败需先定位认证、授权、回调或用量控制哪一层出错:终端无 localhost 回调地址说明 OAuth 监听未启动;浏览器授权成功但终端卡在 Waiting… 则是回调未回传,常见于 WSL/SSH/Docker 环境;Windows 用户需检查并释放 1455 端口;远程环境用 codex login --device-auth 设备码登录;清理残留需删除 auth.json 文件并验证 codex login status;代理导致问题需配置 no_proxy 或临时禁用;Team/Enterprise/Edu 账户必须使用 OpenAI API Key 登录。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

Codex CLI 无法登录时,不能只盯着“重新安装”或“换网络”,必须先判断失败发生在认证、授权、回调还是用量控制哪一层,再针对性处理。
先确认失败阶段,别被浏览器骗了
执行 codex login 后,观察终端输出:没有出现 http://localhost:1455/callback?code= 这行地址,说明根本没启动 OAuth 监听,问题在 CLI 初始化或端口被系统拦截;如果浏览器页面显示“授权成功”但终端一直卡在 Waiting…,说明凭证已生成,但本地回调没回传到 CLI 进程——【这在 WSL、SSH、Remote SSH、Docker 环境中 100% 发生】。
Windows 用户立刻检查 1455 端口是否被系统保留:管理员权限运行 netsh interface ipv4 show excludedportrange protocol=tcp,若输出中包含 1359–1458 区间,直接执行 net stop winnat && net start winnat,无需重启电脑。
远程/无浏览器环境用设备码登录
方法一:设备码强制绕过回调链路
在终端中运行:codex login --device-auth。
终端会输出一个 8 位设备代码和访问地址 https://microsoft.com/devicelogin,用任意能联网的设备(手机/另一台电脑)打开该地址,输入代码并完成账号授权。CLI 将自动获取 token 并完成登录。
【设备代码 10 分钟内有效,且仅可使用一次;切勿截图、发群、粘贴到非官方网页】。
清理残留认证状态
第一步:退出当前登录
codex logout
第二步:定位并删除 auth.json
Windows 路径为 C:\Users\你的用户名\AppData\Roaming\codex\auth.json;macOS 路径为 ~/Library/Application Support/codex/auth.json;Linux 路径为 ~/.codex/auth.json。直接删除该文件,不要只清空内容。
第三步:验证缓存已清除
通过本地 Codex 或 OpenClaw OAuth 凭证直接调用 ChatGPT/Codex Responses 的 image_generation 工具来生成或编辑光栅图像,然后保存
运行 codex login status,应返回 Not logged in。若仍显示旧用户或报 user not found,说明有其他位置残留(如 WSL 子系统内独立的 home 目录),需进入对应环境重复第二步。
代理配置不当导致 403 或空白页
方法1:设置 no_proxy 排除本地回调
在 shell 配置文件(~/.bashrc 或 ~/.zshrc)末尾添加:
export http_proxy=http://127.0.0.1:7890export https_proxy=http://127.0.0.1:7890export no_proxy=localhost,127.0.0.1
保存后执行 source ~/.bashrc(或对应文件)使生效。
方法2:临时禁用代理登录
在登录前临时取消代理变量:unset http_proxy https_proxy all_proxy,再运行 codex login。成功后可恢复代理设置。
Team/Enterprise/Edu 账户必须用 API Key
ChatGPT 登录方式明确不支持 Team、Enterprise 和 Edu 类型账户。若你使用的是组织邮箱注册的账号,直接放弃浏览器登录。
从 OpenAI Platform 控制台(https://platform.openai.com/api-keys)创建新 API Key,然后执行:
codex --api-key sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
或设为环境变量后运行 codex:
export OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcodex

















