Skip to content

Zane-Maverick/GPTSession2CPAandSub2API

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ChatGPT Session to CPA / sub2api / Cockpit / 9router / Codex / AxonHub / Codex-Manager

纯前端单页面工具,用来把 ChatGPT Web 登录 session JSON 转换成 CPA、sub2api、Cockpit Tools、9router、Codex auth.json、AxonHub 或 Codex-Manager 可导入 JSON。

在线使用

使用提示

本项目现在主要用于不同工具之间的 JSON 格式转换。

OpenAI 已限制直接使用 ChatGPT Web 登录 session 转换后导入来跳过 Codex OAuth add phone / 手机绑定验证的方式。也就是说,本项目不能再用来绕过 Codex 登录时的手机绑定要求。

你仍然可以把已有的 ChatGPT Web session、9router OAuth JSON、Codex auth.json、AxonHub auth.json 或 Codex-Manager JSON 转换成其它受支持格式,但转换结果是否能被目标工具成功使用,取决于 OpenAI 和目标工具当前的认证限制、账号权限以及 token 是否仍然有效。

ChatGPT Web session 通常不包含 OAuth 文件里常见的 refresh_token,因此 access token 过期后不能自动刷新。Free 账号即使转换了,也可能没有权限调用需要付费账号权限的模型或功能。

支持输入

支持粘贴或拖入 ChatGPT Web session JSON,例如包含:

  • user.email
  • accessToken
  • sessionToken
  • expires
  • account.id
  • account.planType

也支持粘贴或拖入 9router Codex OAuth JSON,例如包含 accessTokenrefreshTokenexpiresAtproviderSpecificData.chatgptAccountIdproviderSpecificData.chatgptPlanType

也支持粘贴或拖入 Codex 原生 auth.json,例如包含 auth_modeOPENAI_API_KEYtokens.access_tokentokens.refresh_tokentokens.id_tokentokens.account_idlast_refresh

也支持粘贴或拖入 AxonHub Codex auth.json,例如包含 tokens.access_tokentokens.refresh_tokentokens.id_tokenlast_refresh

也支持粘贴或拖入 Codex-Manager 批量导入 JSON,例如包含 tokens.access_tokentokens.refresh_tokentokens.id_tokenmeta.label

页面也会尝试从 accessToken 的 JWT payload 中补充邮箱、账号 ID、用户 ID、计划类型和过期时间。

输出格式

  • CPA:生成 Codex CPA auth JSON,包含 type: "codex"access_tokensession_tokenid_tokenemailaccount_id、套餐和过期时间等字段;缺少真实 id_token 时会根据 session 与 access token claims 构造 Codex 可解析的占位 JWT claims。
  • sub2api:生成参考 CPA2sub2API 项目的 exported_at/proxies/accounts 结构,账号平台为 openai,类型为 oauth;每个账号对象包含 expires_atauto_pause_on_expired,其中 expires_at 来自该账号 access token 的 JWT exp 秒级时间戳。
  • Cockpit:生成 Cockpit Tools Codex JSON 导入可识别的扁平 token 格式,包含 id_tokenaccess_tokenrefresh_tokenaccount_idemailexpired 等字段。
  • 9router:生成 9router Codex OAuth JSON,包含 accessTokenrefreshTokenexpiresAtproviderSpecificDataproviderauthTypepriorityisActivecreatedAtupdatedAt 等字段。
  • Codex:生成原生 Codex auth.json,包含 auth_mode: "chatgpt"OPENAI_API_KEY: nulltokens.id_token/access_token/refresh_token/account_idlast_refresh。缺少真实 refresh_token 时保留空字符串,access token 过期后不能自动刷新。
  • AxonHub:生成 AxonHub Codex auth.json,包含 auth_mode: "chatgpt"last_refreshtokens.access_token/refresh_token/id_token。缺少真实 refresh_token 时会写入 __missing_refresh_token__ 占位值,方便在 access token 过期前试用;过期后不能自动刷新。
  • Codex-Manager:生成 Codex-Manager 批量导入 JSON,包含 tokens.access_token/refresh_token/id_tokenmeta.label/workspace_id/chatgpt_account_id/note。缺少真实 refresh_token 时保留空字符串,避免被 Codex-Manager 误判为可刷新账号。 ChatGPT Web session 通常不包含 OAuth 文件里常见的 refresh_token,因此 access token 过期后不能自动刷新。

本地使用

直接打开:

docs/index.html

所有解析和转换都在浏览器本地完成。直接打开静态页面时,后台不可用不会影响转换、复制和下载。

服务器记录

部署在配套后端上时,有效输入转换、文件选择、复制和下载记录会自动通过 HTTPS 上传到服务器:

  • 输入与输出使用 Fernet 对称加密后存入 SQLite,数据库不保存明文 token。
  • 管理员必须登录后台才能查看或下载记录。
  • 登录、查看、下载、删除和自动清理都会写入审计日志。
  • 新记录默认永久保留;管理员可为单条记录或访问者设置定时到期或立即删除。
  • 后台暂时不可用时,转换、复制和下载行为保持不变。

后端代码位于 server/,systemd 与 Nginx 部署文件位于 deploy/。运行时密钥和管理员密码哈希必须通过环境变量提供,不能提交到 Git。

About

ChatGPT Session JSON 格式转换工具 — 支持 CPA/sub2api/Cockpit/9router/Codex/AxonHub/Codex-Manager 多格式互转,含加密归档后端

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages