/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */
#content_views .toc,
/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */
#content_views.markdown_views > p:empty:has(+ .toc),
#content_views.markdown_views > .toc + p:empty,
/* 富文本旧版目录标记 */
#content_views.htmledit_views #main-toc,
#content_views.htmledit_views #hr-toc,
#content_views.htmledit_views p[id*=\”-toc\”] {
display: none !important;
}
/* 目录去掉后,紧跟的首个标题不再多出一块上边距 */
#content_views.markdown_views > .toc + h1,
#content_views.markdown_views > .toc + h2,
#content_views.markdown_views > .toc + h3,
#content_views.markdown_views > .toc + h4,
#content_views.markdown_views > .toc + p:empty + h1,
#content_views.markdown_views > .toc + p:empty + h2,
#content_views.markdown_views > .toc + p:empty + h3,
#content_views.markdown_views > .toc + p:empty + h4 {
margin-top: 0 !important;
}
摘要
Codex 客户端登录时的手机验证要求,是许多国内开发者遇到的第一道门槛。本文系统整理四套经过验证的解决方案,涵盖从最轻量的 API Key 登录到最彻底的第三方模型 Provider 配置。每种方案均提供完整的操作步骤、配置代码和注意事项,你可以根据自身账号状态和资源条件选择最合适的一条路径。所有方案均已验证可在 2026 年 10 月版本上正常工作。
关键词
Codex登录、手机验证跳过、API Key认证、第三方模型Provider、auth.json、ChatGPT Plus
一、问题背景:手机验证为什么会出现?
Codex 的手机验证触发机制与账号的风控评级直接相关。当系统检测到以下特征时,大概率会强制要求绑定手机号:
-
IP 地址与账号常用地区差异过大:使用机场 IP 或数据中心 IP 而非纯净家宽时,极易被要求验证。
-
账号使用了自定义域名邮箱:使用微软或谷歌邮箱注册的账号,开通 Plus 后通常不会触发验证;但自定义域名邮箱即使开通 Plus,登录 Codex 时仍可能被要求验证码。
-
新设备首次安装:ChatGPT 客户端在新设备上首次安装时,如果浏览器没有登录过 Plus 账号,进去就会要求手机短信验证,与代理节点无关。
理解这些触发条件后,解决方案的思路就清晰了:要么避免触发验证,要么绕过验证环节,要么不使用 ChatGPT 账号体系。以下四套方案分别对应不同的思路。
二、方案一:API Key 登录(最轻量,推荐首选)
这是最直接的方式——使用 OpenAI API Key 进行认证,完全不经过 ChatGPT 账号体系,因此不会触发任何手机验证。官方推荐将 API Key 认证用于程序化 Codex CLI 工作流,如 CI/CD 任务。
2.1 前提条件
你需要一个 OpenAI Platform 的 API Key(sk- 开头)。如果还没有,访问 https://platform.openai.com/api-keys 创建。注意:API Key 按 OpenAI Platform 的标准 API 价格计费,不使用 ChatGPT 套餐内的额度。
2.2 CLI 端操作步骤
第一步:通过标准输入传递密钥
Codex 出于安全考虑,不接受 API Key 作为命令行参数,必须通过标准输入传递:
bash
printenv OPENAI_API_KEY | codex login –with-api-key
或者直接输入:
bash
echo "sk-proj-…" | codex login –with-api-key
第二步:验证认证状态
bash
codex login status
成功后会显示当前认证方式和账号信息。
第三步:启动使用
bash
cd /path/to/your/project
codex "explain this codebase"
2.3 桌面端操作步骤
在 ChatGPT 桌面应用中,退出登录后在登录页面选择 “Sign in another way” ,输入 API Key 即可完成认证。
2.4 注意事项
使用 API Key 方式时,部分依赖 ChatGPT 工作区或云服务的功能可能不可用,例如 Codex Cloud 仍要求 ChatGPT 登录。如果你的使用场景主要是本地编码任务,这个限制影响不大。
三、方案二:配置第三方模型 Provider(最灵活,可完全摆脱 ChatGPT 账号)
如果你希望使用国产模型(DeepSeek、GLM、Kimi、MiniMax 等)或者 OpenRouter 等聚合服务,可以通过配置 config.toml 接入第三方 Provider,这种方式同样不经过 ChatGPT 账号体系。
3.1 config.toml 基本结构
Codex 启动时按以下顺序加载配置:
~/.codex/config.toml — 用户级,全局生效
项目根目录 .codex/config.toml — 项目级,优先级更高
命令行参数 — 最高优先级
一个完整的配置示例:
toml
# 当前使用的模型
model = "deepseek-chat"
# 当前使用的 Provider
model_provider = "deepseek"
# 上下文窗口(token 数)
model_context_window = 128000
# 推理强度:minimal | low | medium | high
model_reasoning_effort = "medium"
# ──────── Provider 定义 ────────
[model_providers.deepseek]
name = "DeepSeek"
base_url = "https://api.deepseek.com/v1"
env_key = "DEEPSEEK_API_KEY"
wire_api = "chat"
每个 Provider 必须定义三个核心字段:
| base_url | API 端点地址 | https://api.deepseek.com/v1 |
| env_key | API Key 对应的环境变量名 | DEEPSEEK_API_KEY |
| name | 显示名称 | DeepSeek |
| wire_api | 协议类型:chat 或 responses | 取决于服务商 |
3.2 接入 OpenRouter(推荐,支持模型最多)
OpenRouter 聚合了 GPT、Claude、Gemini 等数百个模型,通过统一 API 调用。配置方法如下:
第一步:获取 API Key
在 https://openrouter.ai/keys 创建 API Key(sk-or- 开头)。
第二步:编辑 config.toml
toml
model_provider = "openrouter"
model_reasoning_effort = "high"
model = "openai/gpt-sol-latest"
[model_providers.openrouter]
name = "openrouter"
base_url = "https://openrouter.ai/api/v1"
[model_providers.openrouter.auth]
command = "sh"
args = ["-c", "echo $OPENROUTER_API_KEY"]
第三步:设置环境变量
bash
# 添加到 ~/.zshrc 或 ~/.bashrc
export OPENROUTER_API_KEY="sk-or-…"
第四步:重启 Codex 并验证
bash
cd /path/to/your/project
codex
3.3 接入 DeepSeek(国产模型首选)
DeepSeek 的 API 完全兼容 OpenAI 格式,配置简单:
toml
model = "deepseek-chat"
model_provider = "deepseek"
[model_providers.deepseek]
name = "DeepSeek"
base_url = "https://api.deepseek.com/v1"
env_key = "DEEPSEEK_API_KEY"
wire_api = "chat"
设置环境变量:
bash
export DEEPSEEK_API_KEY="sk-…"
3.4 接入 MiniMax(支持 Responses API)
MiniMax 支持 Codex 原生的 Responses API 协议,配置略有不同:
toml
model = "MiniMax-M3"
model_provider = "minimax"
model_context_window = 1000000
[model_providers.minimax]
name = "MiniMax"
base_url = "https://api.minimax.cn/v1"
experimental_bearer_token = "你的MiniMax API Key"
wire_api = "responses"
3.5 桌面端配置的额外注意
如果你使用 ChatGPT 桌面应用,需要注意的是桌面应用从 Dock 或开始菜单启动时不会继承 shell 配置文件中的环境变量。macOS 用户需要使用 launchctl setenv 设置会话级变量:
bash
launchctl setenv OPENROUTER_API_KEY "sk-or-…"
Windows 用户需要使用 setx 设置用户级环境变量:
powershell
setx OPENROUTER_API_KEY "sk-or-…"
设置完成后需要完全退出应用(不是最小化),再重新打开。ChatGPT 和 Codex 桌面应用在退出后可能仍有后台进程保持运行,这些进程会保留旧的环境变量,因此彻底重启是必要的。
3.6 接入本地模型(Ollama / LM Studio)
如果你希望完全离线使用,Codex 的 OSS mode 支持连接 Ollama 或 LM Studio:
bash
codex –oss –local-provider ollama
或在 config.toml 中设置默认值:
toml
oss_provider = "ollama"
四、方案三:开源扩展导出认证文件(绕过已有账号的手机验证)
如果你的 ChatGPT 账号已经被要求验证手机号,但你有权访问该账号的网页版会话,可以使用开源浏览器扩展从网页会话中导出认证文件,直接写入 Codex 配置目录,从而跳过手机验证环节。
4.1 原理说明
Codex 启动时读取 ~/.codex/auth.json 中的认证信息。如果你已经通过浏览器登录了 ChatGPT 网页版,浏览器本地保存着完整的 access_token 和 id_token。扩展的工作就是读取这套会话信息,生成符合 Codex 规范的 auth.json 文件。
4.2 推荐工具:Codex Auth Helper
这是目前社区使用最广泛的开源项目,GitHub 上约有 3.4K Star,核心特性包括 100% 纯本地离线处理(不上传任何数据到第三方服务器)和实时 Token 有效期倒计时。
4.3 操作步骤
第一步:下载扩展
在 GitHub 上搜索 codex-auth-helper,进入仓库后点击 Code → Download ZIP,将源码下载到本地并解压。
第二步:加载扩展
打开 Chrome 浏览器,地址栏输入 chrome://extensions/ 并回车。打开右上角的 “开发者模式” 开关,点击 “加载已解压的扩展程序” ,选择解压后的 extension 文件夹(包含 manifest.json 的目录)。安装成功后,在工具栏的“拼图”图标中找到 Codex 认证助手 并固定。
第三步:导出 auth.json
确保浏览器中已经登录 ChatGPT 网页版(chatgpt.com)。点击扩展图标,它会自动读取当前登录状态并显示账号信息(头像、邮箱、订阅计划、Token 有效期倒计时)。点击 “生成并保存 auth.json” ,扩展会生成配置文件并下载到本地。
第四步:覆盖 Codex 配置
先备份原文件:
bash
cp ~/.codex/auth.json ~/.codex/auth.json.bak
然后将扩展生成的 auth.json 复制到 Codex 的配置目录:
-
macOS / Linux:~/.codex/auth.json
-
Windows:C:\\Users\\你的用户名\\.codex\\auth.json
第五步:重启 Codex
完全退出 Codex 客户端后重新打开。如果不再弹出手机验证界面,说明配置成功。
4.4 注意事项
auth.json 中的 Token 有效期通常为 10 天左右,过期后需要重新登录 ChatGPT 网页版并重新导出。该文件包含可以访问你 ChatGPT 账号的敏感信息,不要分享给他人或提交到公开仓库。
五、方案四:ChatGPT Plus 订阅 + 安全设置(长期稳定方案)
如果你计划长期使用 Codex 且愿意订阅 ChatGPT Plus,可以通过正确的安全设置来避免反复触发手机验证。
5.1 关键操作:注册后立即开启 2FA
社区中一条经过多次验证的经验规律是:注册成功后立即开启 2FA(双因素认证),之后再登录 Codex 就会走 2FA 验证而非短信验证。
具体操作:
登录 ChatGPT 网页版。
进入个人设置 → 安全(Security)。
开启 多因素认证(MFA) 。
短信保持关闭状态,设置好登录密码。
完成 2FA 设置后,再登录 Codex 就会出 2FA 而不是短信验证。
5.2 关键操作:先在网页端登录再打开客户端
如果你已经开通了 Plus 但打开 Codex 客户端仍跳手机验证,可以尝试以下操作:
先在浏览器中用邮箱登录 ChatGPT 网页版。
保持网页端登录状态,再打开 Codex 客户端。
客户端跳转到网页登录页面时,由于浏览器中已有活跃的会话,验证步骤会被跳过。
5.3 邮箱类型选择
使用微软邮箱或谷歌邮箱注册的账号,开通 Plus 后登录 Codex 通常不需要手机验证。自定义域名邮箱即使开通 Plus,登录 Codex 时仍可能要求验证码,建议注册时避开自定义域名邮箱。
六、四套方案对比与选择建议
| API Key 登录 | 有 OpenAI API 额度,纯本地编码 | 否 | 低 | 高 |
| 第三方 Provider | 想用国产模型或 OpenRouter | 否 | 中 | 高 |
| 开源扩展导出 | 已有可登录的 ChatGPT 网页账号 | 是(仅网页端) | 低 | 中(Token 约 10 天过期) |
| Plus + 安全设置 | 愿意订阅,长期使用 | 是 | 低 | 高 |
选择建议:
-
不想折腾、有 API 额度 → 方案一(API Key),两条命令完成配置。
-
想用国产模型或免费模型 → 方案二(第三方 Provider),配置一次长期可用。
-
已有 ChatGPT 账号但被要求手机验证 → 方案三(开源扩展),快速绕过。
-
愿意订阅且长期使用 → 方案四(Plus + 2FA),一次设置避免反复验证。
七、通用注意事项
代理节点必须稳定:无论选择哪种方案,都需要确保 Codex 能够正常访问目标 API 服务。节点不稳定会导致认证失败或频繁触发风控。
环境变量设置后需重启应用:修改 config.toml 或设置环境变量后,需要完全退出 Codex(包括桌面应用的后台进程),再重新启动才能生效。
config.toml 只对用户级生效:model_provider 和 model_providers 仅在用户级的 ~/.codex/config.toml 中生效,Codex 会忽略项目级 .codex/config.toml 中的这些配置。
Token 管理:如果使用方案三,Token 过期后需要重新导出。建议将扩展固定到浏览器工具栏,方便随时重新生成。
八、总结
Codex 的手机验证问题有多种解决方案,核心思路分为三类:不使用 ChatGPT 账号体系(方案一、方案二)、绕过验证环节(方案三)、从源头避免触发验证(方案四)。
最轻量的路径是 API Key 登录(两条命令完成),最灵活的路径是第三方 Provider 配置(支持任意 OpenAI 兼容模型),最省心的长期方案是 Plus 订阅配合 2FA 安全设置。你可以根据自己的账号状态和资源条件,从四套方案中选择最适合的一条。


