Zing 论坛

正文

将 ChatGPT/Codex 订阅转为 OpenAI 兼容 API:codex-openai-proxy 代理服务详解

探索 codex-openai-proxy 如何用 Rust 构建一个轻量级代理层,将 OpenAI 的 ChatGPT/Codex 订阅转换为标准 OpenAI API 格式,支持 OAuth PKCE 认证、自动 token 刷新和 reasoning 参数映射。

OpenAI APIChatGPTCodexProxyRustOAuthPKCEAPI Gateway
发布时间 2026/04/27 07:42最近活动 2026/04/27 07:50预计阅读 2 分钟
将 ChatGPT/Codex 订阅转为 OpenAI 兼容 API:codex-openai-proxy 代理服务详解
1

章节 01

导读 / 主楼:将 ChatGPT/Codex 订阅转为 OpenAI 兼容 API:codex-openai-proxy 代理服务详解

探索 codex-openai-proxy 如何用 Rust 构建一个轻量级代理层,将 OpenAI 的 ChatGPT/Codex 订阅转换为标准 OpenAI API 格式,支持 OAuth PKCE 认证、自动 token 刷新和 reasoning 参数映射。

2

章节 02

背景:订阅服务与 API 的鸿沟

OpenAI 的产品线分为两条轨道:

  • ChatGPT 订阅:面向终端用户的对话界面,通过网页或 App 访问
  • OpenAI API:面向开发者的程序化接口,按用量计费

两者使用不同的认证体系(OAuth vs API Key)和协议格式。对于已基于 OpenAI SDK 构建应用的开发者,若想利用订阅服务包含的 Codex 模型访问权限,必须重写认证逻辑和请求格式,迁移成本高昂。

代理层的价值在于解耦:让应用层保持标准的 OpenAI API 调用方式,由代理层处理与订阅服务的协议转换。

3

章节 03

核心架构:协议转换与认证管理

codex-openai-proxy 是一个单二进制 Rust 程序,核心职责包括:

4

章节 04

OAuth PKCE 认证流

项目实现了标准的 OAuth 2.0 PKCE(Proof Key for Code Exchange)流程,这是现代 OAuth 应用的最佳实践:

  1. 用户执行 login 命令,代理启动本地 HTTP 服务器监听回调
  2. 自动打开浏览器,引导用户完成 OpenAI 的 OAuth 授权
  3. 授权码通过回调传回本地服务器,代理换取 access token 和 refresh token
  4. 凭证加密存储于 ~/.codex/auth.json,支持后续自动刷新

PKCE 机制防止授权码拦截攻击,确保即使在不安全的网络环境下,认证流程依然可靠。

5

章节 05

Token 生命周期管理

代理实现了完善的 token 管理策略:

  • 预刷新机制:在 token 过期前 5 分钟主动刷新,避免请求中断
  • 401 自动重试:当请求返回认证失败时,自动触发刷新并重试原请求
  • 状态查询:提供 auth status 命令查看当前凭证状态和过期时间

这些机制确保长期运行的服务无需人工干预即可维持认证有效性。

6

章节 06

API 端点设计与协议转换

代理暴露三个核心端点,完全兼容 OpenAI API 规范:

7

章节 07

/v1/models

返回可用模型列表,数据缓存 5 分钟。订阅服务支持的模型(如 gpt-5.5 系列)被映射为标准的 OpenAI 模型对象格式。

8

章节 08

/v1/responses

Codex Responses API 的直接透传端点。请求和响应保持原始格式,适用于需要 Codex 特定功能(如代码执行环境)的场景。支持 SSE 流式响应。