# codex-register-v3 **Repository Path**: wurulan/codex-register-v3 ## Basic Information - **Project Name**: codex-register-v3 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-15 - **Last Updated**: 2026-04-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # codex-register-v3

LINUX DO

ChatGPT 账号无头浏览器自动批量注册工具。 支持双浏览器引擎(Playwright Chromium / Camoufox Firefox)、多种邮件服务(GPTMail / NPCmail / YYDS Mail / 通用 IMAP / Outlook)、代理池轮换,asyncio 并发执行,SQLite 持久化存储,注册完成后自动完成 Codex OAuth Token 换取。 --- ## 功能特性 | 功能 | 说明 | |------|------| | 双引擎 | Playwright (Chromium) 或 Camoufox (Firefox),可通过 WebUI 或 CLI 即时切换 | | 反检测 | Chromium 注入 13 点 stealth JS;Camoufox 内置指纹混淆 + GeoIP | | 手机指纹 | 顶层 `mobile: true` 即可全程使用手机端 UA / 视口 / 触控,注册与 OAuth 复用同一 session | | 多邮件后端 | GPTMail / NPCmail / YYDS Mail / **通用 IMAP** / **Outlook**,统一工厂接口 | | IMAP 别名 | qq.com / gmail.com 自动启用 `+alias` 子地址,每次注册生成唯一别名,并发互不干扰 | | 多 IMAP 账户 | 支持配置多个 IMAP 邮箱,随机轮换或按索引固定使用 | | WebUI 配置 | WebUI/FastAPI 配置存储在 SQLite `settings` 表;支持页面直接修改各配置 section | | OAuth Token | 注册完成后自动完成 Codex PKCE OAuth2 流程,写入 `access_token` / `refresh_token` / `id_token` | | OAuth OTP 重试 | OAuth 登录阶段若直接进入邮箱验证码,支持自动检测;验证码错误时自动重发、拉取新码并重试 | | 代理池 | 从文本文件导入,轮询分配,失败 3 次自动禁用 | | 并发 | asyncio.Semaphore 控制同时运行的浏览器数量 | | 持久化 | aiosqlite 驱动的 SQLite,账号去重 upsert | | CLI / WebUI | typer + rich CLI,以及 FastAPI + React WebUI | | 日志 | loguru 双路输出:终端彩色 INFO + 文件 DEBUG(register.log,10 MB 自动轮转) | --- ## 注册流程(7 步状态机) 注册流程完全逆向自 `plan/browser/tool.js` (`_0x548_inner`) 并在 Python 中忠实复现: ``` GOTO_SIGNUP → FILL_EMAIL → FILL_PASSWORD → WAIT_CODE → FILL_CODE → FILL_PROFILE → COMPLETE ``` | 状态 | 动作 | |------|------| | `GOTO_SIGNUP` | 打开 `chatgpt.com/auth/login`,等待 Auth0 跳转;若邮箱框已出现直接填写,否则查找并点击"Sign up"按钮 | | `FILL_EMAIL` | 等待邮箱输入框,用 React 原生 setter 填入生成的邮箱,点击 Continue | | `FILL_PASSWORD` | 等待密码框,填入自动生成的强密码(大写+小写+数字+特殊字符),点击 Continue | | `WAIT_CODE` | 轮询邮件服务获取 6 位验证码(最长 60 s,可配置) | | `FILL_CODE` | 将 6 位验证码逐位填入 `input[maxlength="1"]` 方格或单字段,点击 Continue | | `FILL_PROFILE` | 填写 firstName / lastName;生日优先走 `[role="spinbutton"]`,不足时回退到 `