Releases: HSJ-BanFan/grok-register-web
Release list
v0.4.0 · 协议注册 + 本地 Camoufox Turnstile Solver
本版本把 协议注册 + 本地 Camoufox Turnstile Solver 收成可部署能力:Solver 入库托管、OTP/SSO 批跑稳定性、设置页按路径显隐,并纳入 CPA / IMAP 交付与注册节奏控制。
完整变更见 CHANGELOG.md。
新增
- 本地 Turnstile Solver vendoring:
services/turnstile_solver/(Camoufox / Chromium HTTP API)+services/solver_manager.py子进程托管;默认http://127.0.0.1:5072 - 应用启动按设置自动拉起本地 Solver(未填 YesCaptcha、Turnstile 非「仅浏览器」、URL 为本机回环);退出时回收子进程
- 设置 API:
/api/settings/turnstile-solver/{status,start,stop,restart,test};设置页「测试连接 / 启动 / 停止」 - 可选依赖
requirements-solver.txt(主requirements.txt保持轻量) - Solver 任务级代理:
/turnstile?proxy=与注册出口对齐;客户端对 loopback 使用trust_env=False,避免系统代理劫持本机 Solver - 设置页「注册后端与人机」按路径融合说明:浏览器 / 协议 / 自动三选一,相关字段随路径显隐
- 可配置注册间隔
registration_interval_seconds(轮次间等待) - grok2api 上传前 chat 可用性探测(权限不足时跳过推送,本地仍保存 SSO)
- 可选 CPA(CLIProxyAPI) 交付:SSO → device OAuth mint → chat probe → 热载
xai-*.json;设置页默认关闭 - Microsoft IMAP XOAUTH2 收信:
M.C…消费令牌在 Graph/Outlook REST 不可用时回落 IMAP - 注册交付可同时或独立启用 CPA 与 grok2api;CPA 成功后 grok2api 失败不拖垮整轮
修复
- Cloud Mail / xAI 验证码:优先从主题解析
SpaceXAI confirmation code: XXX-XXX,避免 HTML/CSS 伪码(如PER100)抢码 - 协议批跑 duplicate SSO:curl_cffi 多域 cookie 清理 + 每轮纯 HTTP 重建 session,避免上一号 SSO 残留
- Docker / headless 下 SOCKS 代理改走 Chromium
--proxy-server,补充容器启动参数与可配置启动超时 - 单元测试对齐 IMAP refresh 顺序、cookie 清理与双交付语义
验证结果
| 项目 | 结果 |
|---|---|
| 协议 + Cloud Mail + 本地 Solver(仅外置) | 连续 3/3 成功;transport=http turnstile=local_solver |
| 同配置扩展批跑 | 可达 10/10 成功(无 duplicate SSO / 无错误 OTP) |
| 单轮耗时 | 约 25–30s(含 Solver ~10s) |
| grok2api | 无 chat 权限时 probe 403,本地 SSO 仍入库(预期行为) |
部署说明(协议 + 本地 Solver)
推荐组合(无界面注册主流程):
registration_backend=protocol
turnstile_provider=external # 禁止回退注册 Chrome;仍可用本地 Camoufox Solver
turnstile_solver_url=http://127.0.0.1:5072
browser_proxy=<与注册相同的出口>
说明:本地 Solver 的 Camoufox 只解 Turnstile,不是注册浏览器。 仅当机器完全不能运行任何浏览器二进制时,才需要 YesCaptcha 替代 Solver。
相关提交
- 本 tag 覆盖
v0.3.0之后至发布点的协议硬化、Solver 托管、设置 UI 与交付能力 - 含已合入主干的:
feat: add configurable registration interval、feat: probe grok2api chat availability,以及 CPA/IMAP(PR #12)等
v0.3.0 - 协议注册后端、多邮箱 Provider 与 Aurora 运维台
本次更新以协议化注册与多邮箱 Provider 为主线,同时合并已注册账号 SSO 恢复与蓝白 Aurora 运维台。
协议注册的整体思路参考了 Linux.do 社区讨论:
https://linux.do/t/topic/2594078
在此基础上,本仓库将其落地为可切换的 HTTP 协议后端,并与现有 browser 注册链路、租约、重试、SSO 持久化与 grok2api 交付复用同一套编排。
主要更新
协议注册后端(PR #10)
- 新增实验性
registration_backend=protocolHTTP 注册后端,默认仍为browser - 支持
browser/protocol/auto传输后端选择 - 协议链路复用既有 signup pipeline:
signup page → email → OTP → profile → SSO → activation/upload - 接入外部 / 本地 Turnstile 求解:
- YesCaptcha
- local HTTP solver
- browser fallback
- 强化协议 SSO:
- 可信 URL 校验
- multi-hop follow
- cookie 处理
- token redaction
- 强化容量与租约:
- round capacity 原子预留
- lease ownership / heartbeat
- Turnstile fail-closed
- 新增 mock Turnstile solver,便于本地 / CI 无浏览器验证
多邮箱 Provider(PR #10)
- 新增临时邮箱 Provider:
- DuckMail
- YYDS
- Cloudflare Temp Email
- Cloud Mail
- Provider 只负责:
- 邮箱开通
- 验证码读取
- 注册主流程保持统一,不把临时邮箱拆成另一套 signup 分支
- Microsoft 仍支持多别名;临时邮箱强制单 alias
已注册账号恢复(PR #7)
- 遇到已注册邮箱时,不再持续等待或直接跳过
- 改为通过邮箱登录恢复已有账号 SSO
- 继续保存结果并上传 grok2api
Aurora 运维台(PR #11)
- 蓝白 aurora 控制台重构
- sticky sidebar + topbar eyebrow/title
- 设置页分区卡片、choice-card、自定义
ui-select - KPI count-up、fold 折叠面板、页面过渡
- 自定义下拉使用
position: fixed,避免设置卡片裁切
其他稳定性
- 修复不兼容 Chrome executable 恢复
- 修复被污染的 static MIME 映射
- 设置页 / 账号表 HTML 转义与 DOM 安全渲染
- UI browser regression tests
设计说明:协议注册如何落地
社区文章提供了“用协议 / HTTP 方式完成注册、减少浏览器依赖”的方向。
本版本没有照搬脚本式实现,而是按本仓库现有控制面重新建模:
-
共享编排
protocol 与 browser 共用 claim alias、lease、retry、SSO 落库、activation、grok2api 上传。 -
Provider 边界收敛
临时邮箱只做 mailbox provision + code retrieval;
不再把 provider 特有逻辑扩散进注册主流程。 -
安全默认
browser 仍是默认后端;
protocol 作为实验能力,Turnstile / SSO / capacity 采用 fail-closed 与原子预留。 -
可观测与可测
设置页可切换 backend / provider / solver;
单元测试 + mock solver + live Cloud Mail E2E 覆盖关键路径。
验证
- 协议注册 PR 合并时:
171 passed - Aurora UI 合并后:
178 passed - ruff / Python compile / JS syntax check 通过
- 真实 Cloud Mail 邮箱完成共享 browser signup、SSO、Web activation,并同步 Web/Build 到 grok2api
- UI browser regression 覆盖自定义 select、设置页联动等关键交互
相关 PR
- #10 feat(registration): protocol HTTP backend + multi-provider mailboxes
- #11 feat(ui): aurora operations dashboard
- #7 fix: recover existing-account SSO and continue save/upload
思路来源
- 协议注册思路参考:https://linux.do/t/topic/2594078
协议后端仍受 xAI / Cloudflare / 代理 / 公网 IP 环境影响。
生产默认建议继续使用 browser;protocol 建议先小并发验证后再扩大。
v0.2.0 - 注册可靠性与持久恢复更新
本次更新集中提升连续注册、Cloudflare 上下文复用、SSO 身份隔离、验证码邮件容错,以及 grok2api 导入转换的可恢复性。
主要更新
- 复用
grok.comCloudflare Cookie 与浏览器 User-Agent - 每轮清理完整账号身份后恢复可信 Cloudflare 上下文,避免旧 SSO 串号
- 新增事务级 SSO 原子去重与持久化指纹账本
- 验证码轮询安全下限调整为 10 次,覆盖 Outlook 延迟邮件
- grok2api Build 转换失败自动重试
- 新增 grok2api 持久化交付状态与后台自动补传
- 可恢复重试不再占用
max_rounds目标名额 - 完善 Linux/Xvfb、代理和 Cloudflare 环境诊断
验证
- 自动化测试:100 passed
- 连续真实注册:5/5 成功
- 5 个新 SSO 指纹全部唯一
- 5 组 Web/Build 账号全部双向关联并处于 active
- 持久化补传真实验证成功
完整内容见 CHANGELOG.md。
v0.1.0 - 注册稳定性更新
主要更新
- 默认关闭与 xAI 风控不兼容的旧版 JS stealth,降低验证码发码
[permission_denied] HTTP 403 - 资料提交不再强制启用 disabled 按钮,并新增
Profile network diagnostic网络诊断 - 识别 Turnstile 后自动完成跳转,修复“账号实际成功但程序显示失败”
- 识别
Existing account found,并要求 OTP 后资料表单稳定存在 - 验证码邮件按 alias、发码时间和邮件 ID 精确匹配
- 修复 Cookie banner 重挂载和成功后的
Alias lease was lost误报警告 - 补全 grok2api Web 导入与 Build 转换结果日志
验证
- 自动化测试:
65 passed - 已完成真实单 Worker 注册、OTP、资料提交、SSO 提取验证
- grok2api Web 导入
created=1 - Build 转换
created=1、failed=0、synced=1
参考
- 完整更新日志:CHANGELOG.md
- 问题分析与解决记录:Issue #1
xAI/Cloudflare 风控仍受公网 IP、浏览器和运行环境影响。推荐先使用 Windows 有头模式、单 Worker 配置复现。