一个用于 sub2api 的 OpenAI / Codex 账号重新授权工具。
它会自动扫描需要重新授权的账号,打开真实浏览器完成 OpenAI 登录流程,读取邮箱验证码,处理授权回调,并把新的 OAuth 凭据回写到 sub2api,同时保存本地 token 和操作日志。
- 扫描需要重新授权的 sub2api OAuth 账号
- 支持按账号 ID、邮箱、分组、套餐筛选
- 支持交互式选择单个账号,或先按分组筛选后用
all批量处理同一组账号 - 自动打开浏览器完成登录、验证码输入和授权确认
- 支持邮箱验证码从 Cloudflare 邮箱辅助页读取
- 遇到账号被删除/停用时自动跳过并记录
- 遇到免费账号要求绑定手机号时自动跳过
- 遇到 Plus 账号手机号验证时关闭当前浏览器,重新打开浏览器登录 ChatGPT 并获取 session access token
- 更新 sub2api 账号凭据、清理错误状态,并写入本地 token 文件和日志
- Node.js 18+
- Chrome 或 Edge
- 可访问的 sub2api 管理接口
- 可访问的邮箱服务辅助页
npm install
copy config.example.json config.json
notepad config.json编辑 config.json,至少填写这些项:
sub2apiBaseUrlsub2apiAdminEmailsub2apiAdminPasswordmailBaseUrlmailAdminPassword
可选项:
mailSitePasswordmailDomainmailTimeoutMsoauthRedirectUritokenOutputDirstokenFilenameModereauthLogFilebrowserWindowWidthbrowserWindowHeightchromePathedgePathcandidateErrorKeywordspreferredGroupNamespreferredGroupIds
node index.js --list-candidates按 ID:
node index.js --account-id 123按邮箱:
node index.js --email user@example.comnode index.js --auto先扫描,再手动确认:
node index.js --interactive在候选列表里可以输入:
- 序号
- 账号 ID
- 邮箱
all一次处理全部匹配账号
如果想按分组分批处理,可以直接先加分组筛选,再在该组候选里输入 all:
node index.js --interactive --group plus
node index.js --interactive --group-id 1node index.js --interactive --group plus
node index.js --interactive --plan free
node index.js --auto --group-id 1
node index.js --auto --prefer-group plus
node index.js --auto --prefer-group-id 1参数说明:
--group/--group-id:严格过滤候选账号--prefer-group/--prefer-group-id:优先处理匹配账号,但不排除其他候选--plan:按套餐过滤,支持free/plus--confirm:和--interactive等价--interactive配合--group/--group-id可按分组分批次选择账号
- 扫描 sub2api 中符合条件的 OAuth 账号
- 打开浏览器进入 OpenAI 登录页
- 输入邮箱并继续
- 如遇密码页,点击“一次性验证码登录”
- 从邮箱辅助页读取验证码并填入
- 完成授权确认
- 获取回调地址中的授权码并兑换凭据
- 更新 sub2api 账号状态和凭据
- 写入本地 token 文件和 reauth 日志
tokens/:本地 token 文件data/reauth-log.json:重新授权日志
- 如果账号被删除/停用,工具会跳过该账号继续后续流程
- linux.do