[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-93388":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":13,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":14,"stars7d":15,"stars30d":15,"stars90d":14,"forks30d":14,"starsTrendScore":16,"compositeScore":17,"rankGlobal":9,"rankLanguage":9,"license":18,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":21,"hasPages":19,"topics":22,"createdAt":9,"pushedAt":9,"updatedAt":23,"readmeContent":24,"aiSummary":25,"trendingCount":14,"starSnapshotCount":14,"syncStatus":26,"lastSyncTime":27,"discoverSource":28},93388,"grok-register-web","HSJ-BanFan\u002Fgrok-register-web","HSJ-BanFan","Grok 自动注册 Web 平台：Outlook 别名批量注册、SSO 采集，注册成功后自动导入 grok2api（Web \u002F Build）",null,"Python",135,37,1,0,26,13,60.34,"MIT License",false,"master",true,[],"2026-07-22 04:02:09","# Grok 自动注册平台\n\nWeb 可视化平台，支持 Hotmail\u002FOutlook 邮箱别名与多种临时邮箱服务，并自动化 Grok (x.ai) 账号注册。\n支持验证码自动获取、浏览器自动化注册、SSO 采集，以及注册成功后自动写入 grok2api（Web 导入 + Build 转换），导入后可直接在 grok2api 中使用。\n\n> **仅供个人学习与自用测试。** 请遵守 xAI、邮箱服务商条款与当地法律。\n\n## 界面预览\n\n![结果管理 · 系统统计概览](docs\u002Fscreenshots\u002Fresults-dashboard.png)\n\n> v0.3.0 蓝白 Aurora 运维台：侧边导航、KPI 统计卡、SSO \u002F 账号结果折叠面板。\n\n## 开源与社区\n\n- **完整开源**：本仓库全部源码公开，[MIT License](LICENSE)\n- **仓库地址**：https:\u002F\u002Fgithub.com\u002FHSJ-BanFan\u002Fgrok-register-web\n- **版本更新日志**：[CHANGELOG.md](CHANGELOG.md)\n- **链接认可社区**：[LINUX DO](https:\u002F\u002Flinux.do\u002F)\n- **协议注册思路**：[LINUX DO · 协议注册讨论](https:\u002F\u002Flinux.do\u002Ft\u002Ftopic\u002F2594078)\n- **上游参考**：[AaronL725\u002Fgrok-register](https:\u002F\u002Fgithub.com\u002FAaronL725\u002Fgrok-register)\n- **说明**：在社区讨论与既有开源方案启发下完成的二次开发 \u002F Web 化改造，不是从零另起炉灶\n\n## 功能\n\n- **多邮箱服务** — Microsoft Graph \u002F Outlook REST、DuckMail、YYDS、Cloudflare Temp Email、Cloud Mail API\n- **Microsoft 账号导入** — 文本粘贴或文件上传，格式：`邮箱----密码----ClientID----RefreshToken`\n- **全自动注册** — 打开注册页 → 填邮箱 → 收验证码 → 填资料 → 过 Turnstile → 提取 SSO\n- **Hotmail 别名** — 每主邮箱最多 N 个成功别名（`邮箱` \u002F `邮箱+1@域名` …）\n- **临时邮箱自动创建** — 非 Microsoft provider 每轮创建独立邮箱，自动进入账号库并复用同一租约\u002F重试\u002F结果管线\n- **验证码精确匹配** — 按目标 alias、发码时间和邮件 ID 筛选 Graph \u002F Outlook 邮件\n- **失败重试** — 单个别名失败自动重试；耗尽后创建替换别名\n- **英文 \u002F 中文 UI 兼容** — 适配 `Sign up with email` \u002F `Complete sign up` 等英文文案\n- **实时日志** — WebSocket 推送进度\n- **结果管理** — SSO \u002F 账号密码查看、复制、导出\n- **grok2api 自动接入** — 注册成功后自动：\n  1. 导入 Grok Web（SSO）\n  2. 转换为 Grok Build  \n  导入后可在 grok2api 中直接调用，无需再手工粘贴 Token\n- **浏览器代理** — 可选配置，降低注册页风控概率\n- **旧账号批量补激活（可选）** — 需要 Cloudflare 出口上下文时，对历史 success SSO 批量补 TOS \u002F 生日 \u002F CF；同一次任务里通常只需手点第一道 CF\n\n## 环境要求\n\n| 项目 | 已验证基线 | 支持说明 |\n|------|------------|----------|\n| 操作系统 | Windows 11 x64 | 当前主要验证环境 |\n| Python | 3.12.10 | 项目最低声明为 3.10+，推荐先复刻已验证版本 |\n| Chrome | 150.0.7871.101 | 使用本机有头 Chrome；其他版本可能受页面或驱动差异影响 |\n| DrissionPage | 4.1.0.9 | 已在 `requirements.txt` 精确锁定 |\n| Flask | 3.1.3 | 已验证版本 |\n| Flask-SocketIO | 5.6.1 | 已验证版本 |\n| requests | 2.33.1 | 已验证版本 |\n| curl_cffi | 0.15.0 | 已验证版本 |\n\nWindows 本地运行是当前正式推荐方式。macOS \u002F Linux 可运行项目代码，但浏览器、字体、沙箱和桌面会话差异尚未形成同等强度的真实注册验证。\n\n> `requirements.txt` 中除 DrissionPage 外仍有 `>=` 依赖范围。若需要严格复现实验结果，请使用上表版本创建独立虚拟环境，并记录实际安装结果：`pip freeze > environment.txt`。\n\n可选：本地 HTTP 代理（如 `http:\u002F\u002F127.0.0.1:7897`）。\n\n## 快速开始\n\n### 1. 安装依赖\n\n```bash\npip install -r requirements.txt\n```\n\n### 2. 启动\n\n```bash\npython app.py\n```\n\n如果启动任务时出现 `WinError 216`，程序会自动尝试 Windows 常见的 Chrome 安装路径。\n仍无法启动时，可显式指定可执行文件：\n\n```powershell\n$env:GROK_REGISTER_BROWSER_PATH = \"$env:ProgramFiles\\Google\\Chrome\\Application\\chrome.exe\"\npython app.py\n```\n\n该路径必须是当前 Windows 可直接运行的 `chrome.exe`，不要填写 ChromeDriver、压缩包、\nLinux\u002FARM 版本或扩展目录。\n\n默认打开 `http:\u002F\u002Flocalhost:5000`。\n\n```bash\npython app.py --port 8080\npython app.py --host 0.0.0.0 --port 5000 --allow-remote   # 仅限可信网络\n```\n\n### Linux 服务器：Xvfb 虚拟有头模式\n\nxAI\u002FCloudflare 会直接拦截部分带 `HeadlessChrome` 指纹的请求。没有物理桌面的\nLinux 服务器应使用 Xvfb 运行普通有头 Chrome，而不是开启浏览器无头模式：\n\n```bash\nsudo apt-get update\nsudo apt-get install -y xvfb xauth\n\nbash scripts\u002Frun_with_xvfb.sh \\\n  --host 0.0.0.0 --port 5000 --allow-remote\n```\n\n启动脚本会强制：\n\n- `GROK_REGISTER_BROWSER_HEADLESS=false`\n- `GROK_REGISTER_CONCURRENCY=1`\n- `1365x900x24` 虚拟显示器\n\n如需指定 Python：\n\n```bash\nPYTHON_BIN=\u002Fpath\u002Fto\u002Fvenv\u002Fbin\u002Fpython bash scripts\u002Frun_with_xvfb.sh \\\n  --host 0.0.0.0 --allow-remote\n```\n\n如果配置了浏览器代理，程序会在启动 Chrome 前从当前 Python 进程所在的网络\n命名空间连接代理端口。Docker 中的 `127.0.0.1` 指向容器自身；代理运行在宿主机\n时，应改用容器可访问的宿主机地址、`host.docker.internal` 或 Compose 服务名。\n\n### 3. 使用流程\n\n1. **导入账号** — `邮箱----密码----ClientID----RefreshToken`\n2. **设置（推荐）**\n   - 开启：自动导入 Web 并转换 Build\n   - 关闭：注册后打开 grok.com 做 Web 激活（避免每轮 Cloudflare 人机）\n   - 填写 grok2api 地址 \u002F 管理员账号密码\n   - 可选：浏览器代理\n3. **注册控制** → 启动任务，看实时日志\n4. **结果管理** → 导出 SSO \u002F 账号\n\n首次使用请注意：Git 仓库不会包含作者本机的 `data\u002F`、SQLite 设置、邮箱 RefreshToken、临时邮箱 API 凭证、SSO、浏览器 Profile 或 grok2api 密码。克隆源码后必须自行导入 Microsoft 邮箱或配置临时邮箱服务，并完成其余设置。\n\n成功日志示例：\n\n```\nSSO cookie found (152 chars)\ngrok2api auto pipeline completed: web_created=1 build_created=1 ...\nRound N SUCCESS! Duration: 28.0s\n```\n\n## 推荐用法\n\n**日常批量注册**\n\n```\n关闭「注册后打开 grok.com 做 Web 激活」\n开启「自动导入 Web 并转换 Build」\n→ 注册 → SSO → 上传到 grok2api → Build 转换 → 可直接使用\n→ 一般不弹 Cloudflare 人机\n```\n\n**需要 Web \u002F CF 出口时**\n\n```\n「结果管理」或「注册控制」→ 批量补激活\n→ 只处理第一道 Cloudflare\n→ 同一浏览器会话内后续账号复用 cf_clearance\n```\n\n说明：grok.com 的托管挑战（`Verify you are human`）无法稳定全自动过，因此默认不在每轮注册后打开 grok.com。上传与 Build 转换不依赖浏览器 CF Cookie。\n\n## 旧账号批量补激活\n\n适用于历史 SSO 缺少 TOS\u002F生日，或共享 CF 出口失效：\n\n1. 读取本地 success SSO  \n2. 逐个切换 SSO → TOS → 生日 → Web 健康检查  \n3. 刷新 grok2api 出口节点 `grok-register-web`  \n4. 不重新注册，不重新 convert Build  \n\n注册 Worker 也会保留同一浏览器\u002F出口上已经建立的 `grok.com` Cloudflare 上下文：\n成功取得 `cf_clearance` 后，后续轮次只清理 SSO 身份 Cookie，不再全量清除 Grok Web\n的 Cookie；即使浏览器因异常重启，也会把同一 User-Agent 和 Cloudflare Cookie 恢复到新页面。\nCloudflare 仍可能因出口 IP、User-Agent 或 Cookie 过期而要求重新验证，程序不会伪造或跨出口\n复用该上下文。\n\n## 项目结构\n\n```\ngrok-register\u002F\n├── app.py\n├── config.py\n├── requirements.txt\n├── core\u002F                 # 注册、激活、邮箱、浏览器、grok2api\n│   └── registration\u002F     # 注册状态、资料提交状态机与诊断\n├── api\u002F                  # REST + WebSocket\n├── static\u002F               # 前端 SPA\n├── templates\u002F\n├── docs\u002Fscreenshots\u002F     # README 界面预览图\n├── turnstilePatch\u002F       # Turnstile 辅助扩展\n├── scripts\u002F              # Xvfb 等服务器启动脚本\n├── tests\u002F\n└── data\u002F                 # 运行时生成（本地数据库，勿提交）\n```\n\n## 主要设置\n\n| 设置项 | 说明 | 建议 |\n|--------|------|------|\n| 注册邮箱服务 | Microsoft \u002F DuckMail \u002F YYDS \u002F Cloudflare \u002F Cloud Mail | 先按下节配置凭证 |\n| 每账号最大别名数 | 每主邮箱成功上限 | 5 |\n| 每别名最大重试 | 失败重试次数 | 2–3 |\n| 注册并发 Worker 数 | 同时运行的浏览器数量 | **1** |\n| 浏览器模式 | 有头 \u002F 无头 | 调试用有头 |\n| 浏览器代理 | 如 `http:\u002F\u002F127.0.0.1:7897` | 有代理建议填 |\n\n### 邮箱服务配置\n\n在「系统设置 → 注册邮箱服务」选择 provider：\n\n| Provider | 创建与收信方式 | 必要配置 |\n|----------|----------------|----------|\n| `microsoft` | 使用账号库内 OAuth RefreshToken，通过 Graph 或旧 Outlook REST 收信；支持加号别名 | 先在邮箱管理页授权或导入账号 |\n| `duckmail` | 通过 Mail.tm 风格接口创建账号、获取 token、轮询邮件 | `duckmail_api_base`；私有服务可填 API Key |\n| `yyds` | 通过 YYDS API 创建地址并轮询邮件 | API Key 或 JWT |\n| `cloudflare` | 优先兼容 `cloudflare_temp_email` 的 `\u002Fapi\u002Fnew_address` \u002F `\u002Fadmin\u002Fnew_address`，并回退 Mail.tm 风格接口 | API Base；按部署选择鉴权方式、路径和默认域名 |\n| `cloud_mail` | 使用管理员 token 创建用户并通过 `emailList` 收信 | API Key，或管理员邮箱 + 密码 |\n\nMicrosoft 邮箱会继续按「每账号最大别名数」生成别名。临时邮箱是单次邮箱账号，`max_aliases=1`；验证码\u002F注册失败会按「每别名最大重试」重试同一地址，耗尽后自动停用该临时邮箱并创建下一个。\n\n邮箱 provider 只负责创建邮箱和读取验证码。打开注册页、填写邮箱\u002FOTP\u002F资料、Turnstile、SSO、Web 激活及 grok2api 上传均复用同一套注册流程，不按邮箱服务商分叉。\n\n邮箱 API 请求会沿用 `browser_proxy`（如果已配置），便于注册页和邮箱服务保持一致的网络出口。Cloudflare 自建服务的路径与鉴权方式可直接在设置页调整，无需修改源码。\n\n### 注册后端实验架构\n\n当前分支保留原有浏览器注册流程，并接入协议 Worker（实验）。\n\n协议注册的整体思路参考 LINUX DO 社区讨论：\nhttps:\u002F\u002Flinux.do\u002Ft\u002Ftopic\u002F2594078\n\n在此基础上，本仓库将其落地为可切换的 HTTP 协议后端，并与现有 browser 注册链路、租约、重试、SSO 持久化与 grok2api 交付复用同一套编排，而不是照搬脚本式实现。\n\n```text\nRegistrationEngine\n├── browser   原有浏览器流程（默认）\n└── protocol  HTTP\u002FgRPC-Web Worker（实验）\n    ├── curl_cffi Session（优先 chrome110\u002F119 等可过 CF 的 impersonate）\n    ├── SignupParameterDiscovery\n    ├── ProtocolRegistrationBackend（纯 HTTP 发码\u002F验码\u002F提交\u002FSSO）\n    ├── ExternalTurnstileProvider（YesCaptcha \u002F 本地 solver，优先）\n    └── BrowserTurnstileProvider（仅外置失败或 discovery 被拦时回退）\n```\n\n可通过设置页或环境变量选择：\n\n```text\nGROK_REGISTER_BACKEND=browser\n# 或 protocol \u002F auto（auto 当前映射到 protocol）\n```\n\n`browser` 是默认并保持现有行为的模式。`protocol` 复用同一套 alias 租约、邮箱验证码、失败分类与 grok2api 上传管线。\n\n协议路径对齐 Asset\u002Fgrok1 的服务器注册方式：\n\n1. **优先纯 HTTP**：`curl_cffi` impersonate + 可选代理完成 discovery \u002F gRPC \u002F Server Action \u002F `set-cookie` 跟跳\n2. **Turnstile 外置优先**：`YESCAPTCHA_KEY` 或本地 `http:\u002F\u002F127.0.0.1:5072` solver。`turnstile_provider=external` \u002F `strict_external` 时 **不允许** 回退 Chrome（服务器零浏览器）；`auto` 才允许浏览器回退\n3. **可选 post-init**：注册成功后用 SSO 调 TOS \u002F 生日 API（`protocol_post_init`）。SSO 会同时写入 `.x.ai` 与 `.grok.com`。这与设置里的「注册后打开 grok.com 做 Web 激活」不是同一条路径——后者只在 **browser** 后端里打开网页做人机\u002FCF；协议路径默认不打开 grok.com，需要 CF 出口时仍用「批量补激活」\n4. 环境被 Cloudflare 拦截时 **abort 且不消耗 alias 重试**\n5. 成功日志拆分：`transport=http|browser turnstile=yescaptcha|local_solver|browser sso_follow=http|browser|cookie`（不要只看旧的 `mode=pure-http`）\n\n启用协议 Worker 前请确认：\n\n1. 出口可访问 `accounts.x.ai`（可用 `browser_proxy` \u002F `GROK_PROXY` \u002F 系统 `HTTPS_PROXY`）\n2. **服务器零浏览器**：`GROK_REGISTER_TURNSTILE_PROVIDER=external` + YesCaptcha 或本机 solver；YesCaptcha 会把注册代理写入 `TurnstileTask` 以绑定同出口\n3. 桌面混合模式可用 `auto` 并保留有头 Chrome 作为回退\n4. 并发保持 `1`\n\n相关环境变量：\n\n```text\nGROK_REGISTER_BACKEND=protocol\nGROK_PROXY=http:\u002F\u002F127.0.0.1:7897\nYESCAPTCHA_KEY=...\nTURNSTILE_SOLVER_URL=http:\u002F\u002F127.0.0.1:5072\nGROK_REGISTER_TURNSTILE_PROVIDER=external   # auto | external | browser\nGROK_REGISTER_ALLOW_BROWSER_FALLBACK=false  # 可选；external 默认即为 false\n```\n\n相关模块：`core\u002Fregistration\u002Fbackend.py`、`turnstile.py`、`protocol_worker.py`。不要将本地 Solver 暴露到公网。\n| 注册后打开 grok.com 做 Web 激活 | 仅浏览器路径：注册成功后是否打开 grok.com 做人机\u002FCF；与协议 pure-HTTP post-init 无关 | **关闭** |\n| 自动导入 Web 并转换 Build | 写入 grok2api | **开启** |\n| grok2api 地址 \u002F 账号 \u002F 密码 | 管理端 | 本地或自建实例 |\n\n### 推荐复现配置\n\n先用以下保守基线完成 1 个账号，再逐项调整，不建议一开始就增加并发：\n\n| 项目 | 推荐值 |\n|------|--------|\n| 注册并发 Worker 数 | `1` |\n| 浏览器模式 | 有头 |\n| Chrome Profile | 程序生成的临时隔离目录 |\n| 浏览器代理 | 留空直连；若当前网络持续 403，再使用可信且稳定的固定出口 |\n| JS stealth | 保持默认关闭 |\n| Turnstile | 使用项目自带辅助扩展；必要时人工处理挑战 |\n| 注册后打开 grok.com 做 Web 激活 | 关闭 |\n| 自动导入 Web 并转换 Build | 按需开启；先确认 grok2api 地址可从本机访问 |\n\n不要直接复制其他人的 `data\u002Fapp.db`。数据库可能包含邮箱 Token、SSO 和服务密码，也可能带有已占用 alias、旧任务租约与不适合当前机器的设置。\n\n## 常见错误与判断方法\n\n| 日志或现象 | 实际含义 | 建议处理 |\n|------------|----------|----------|\n| `[permission_denied] HTTP 403` | xAI 拒绝了发送验证码请求；这时邮箱里本来就不会有新验证码 | 确认使用最新代码且没有自行恢复旧 stealth；停止高并发，等待风控窗口，检查公网出口\u002FIP 信誉。不要把它当成 Outlook 收信故障 |\n| `SIGNUP_ENVIRONMENT_BLOCKED` | 注册页被 Cloudflare 硬拦截，或浏览器显示代理连接错误页 | alias 会被释放且不消耗重试。Linux 服务器改用 `scripts\u002Frun_with_xvfb.sh`，并检查代理是否位于同一网络命名空间；查看 `data\u002Fdiagnostics\u002Fsignup-*.json\u002F.png` |\n| `Browser proxy is not reachable from this process\u002Fnetwork namespace` | 当前程序进程无法连接配置的代理主机和端口 | Docker 中不要误用指向宿主机代理的 `127.0.0.1`；改用宿主机网关地址或代理服务名 |\n| `未找到邮箱注册入口按钮` | 当前页面没有进入预期注册入口，可能仍在加载、被挑战\u002F错误页拦截、页面结构发生变化或浏览器环境异常 | 使用有头模式观察实际页面并保存截图；确认 Chrome 可正常访问 `accounts.x.ai`，再附日志和 `data\u002Fdiagnostics\u002F` 报告问题 |\n| `未找到最终注册表单或完成注册按钮` | OTP 后没有得到稳定资料表单；也可能站点已经自动完成、邮箱已有账号，或页面被重新挂载 | 当前版本已识别自动完成和 Existing account；若最新版仍出现，查看紧邻日志、最终 URL、诊断 JSON 与截图 |\n| `Profile network diagnostic: ... status=...` | 资料提交阶段捕获到的网络请求，不等于这一行本身就是失败 | 重点看 create-account\u002Fsign-up 相关 POST、`status`、`failed`、最终 URL 和是否找到 SSO。某些浏览器事件会把已成功导航的请求标成 `failed=True`，最终应以进入 account\u002Fgrok 页面和取得 SSO 为准 |\n| 注册成功但 grok2api 显示 `sync_failed=1` | Web 导入已完成，但 Web 即时同步失败 | 继续看后续 Build conversion；若 `build_created=1`、`build_failed=0`、`build_synced=1`，则 Build 管线已成功，不应把整轮注册判为失败 |\n| Render 构建成功，运行末尾 `-1` | 通常是运行容器中的 Chrome\u002F沙箱\u002F内存\u002F进程退出问题，不是 Python 依赖“build 成功”就能证明注册环境可用 | 先在 Windows 本地复现。Render 数据中心 IP、临时文件系统、无桌面浏览器和资源限制均会显著影响此项目 |\n\n### 为什么作者本机正常，其他环境仍可能失败\n\n自动化注册不是只由仓库代码决定，实际结果还取决于以下几层状态：\n\n1. xAI 页面版本、Turnstile 状态与公网 IP 风控信誉\n2. Chrome、Python 和依赖的具体版本\n3. 是否有可用桌面会话、浏览器沙箱权限和足够内存\n4. 邮箱 OAuth 权限、RefreshToken 状态和 alias 是否已经注册\n5. SQLite 中保存的并发、代理、激活和 grok2api 设置\n6. grok2api 是否真的位于程序可访问的地址\n\n因此“同一份源码”不等于“同一运行环境”。排障时应先用上面的单 Worker 基线复现，再比较日志，不要同时更换代理、并发、浏览器和邮箱。\n\n### 关于 Render 和其他云平台\n\n当前不推荐在 Render 或普通云函数\u002F容器中运行注册 Worker：\n\n- 数据中心公网 IP 更容易触发 403 或 Turnstile 风控\n- 无头 Chrome、Linux sandbox、共享内存和进程生命周期与已验证的 Windows 有头环境不同\n- Render 文件系统通常不是可靠的长期 SQLite\u002F浏览器 Profile 存储\n- Render 要求监听 `0.0.0.0:$PORT`，而项目默认只监听本机地址\n- 云容器中的 `127.0.0.1:21434` 指向容器自身，不是用户电脑上的 grok2api\n\n管理页面可以另行做云部署适配，但这不能保证注册 Worker 复刻本地 IP 和浏览器环境。若需要稳定运行，优先选择自己可控制出口、Chrome 版本和持久磁盘的 Windows 主机。\n\n## 技术栈\n\nFlask · Flask-SocketIO · DrissionPage · SQLite · 原生 ES Module 前端\n\n## 测试\n\n```bash\npython -m unittest discover -s tests -v\n```\n\n## 注意事项\n\n- 默认绑定 `127.0.0.1`；绑定非本机地址必须显式添加 `--allow-remote`\n- 需要本机已安装 Chrome \u002F Chromium  \n- 账号、Token、密码仅存本地 `data\u002F`，请勿把运行时数据提交到公开仓库  \n- 资料提交失败时会在 `data\u002Fdiagnostics\u002F` 保存状态 JSON 和页面截图\n- 启动恢复会把超时的 pending 记录标记为 `interrupted`，不会消耗 alias 重试次数\n- Cloudflare 托管挑战无法保证全自动，请用「推荐用法」分流  \n- 注册页出现 `[permission_denied] HTTP 403` 表示 xAI 拒绝了发送验证码请求，邮箱中不会产生新邮件。程序会立即停止并保留 alias\u002Fretry 预算；请等待风控解除或更换网络出口后再启动\n- 选择 Microsoft 时，Token 会自动识别 Graph 与旧 Outlook REST 授权范围；无读取权限时会直接显示 OAuth\u002FAPI 错误。程序不会在一次已发码的注册中途切换 provider\n- 提交 Issue 时请删除邮箱 RefreshToken、验证码、SSO、Cookie 和 grok2api 密码；建议提供系统\u002FPython\u002FChrome 版本、是否有头、Worker 数、公网出口类型、完整错误前后日志及 `data\u002Fdiagnostics\u002F` 中已脱敏的诊断信息\n\n## 致谢\n\n- 本项目在社区讨论与既有开源方案启发下完成二次开发 \u002F Web 化改造\n- 感谢 [LINUX DO](https:\u002F\u002Flinux.do\u002F) 社区\n- 协议注册思路参考：[LINUX DO · 协议注册讨论](https:\u002F\u002Flinux.do\u002Ft\u002Ftopic\u002F2594078)\n- 上游参考：[AaronL725\u002Fgrok-register](https:\u002F\u002Fgithub.com\u002FAaronL725\u002Fgrok-register)\n\n## License\n\n[MIT](LICENSE)\n","这是一个面向 Grok（x.ai）平台的自动化账号注册 Web 工具，专注于通过 Outlook\u002FHotmail 别名及多种临时邮箱服务批量完成 Grok 账号注册与 SSO 凭据采集。核心功能包括浏览器自动化注册（支持 Turnstile 验证绕过）、验证码精准匹配（基于 Graph API）、别名生成与失败重试、SSO 自动提取，并无缝对接 grok2api 实现 Web 端导入与 Build 格式转换。项目采用 Flask + DrissionPage 构建，提供中英文 UI、实时 WebSocket 日志和结果管理看板，适用于个人开发者进行小规模 Grok 账号矩阵搭建与测试，需严格遵守 xAI 及邮箱服务商使用条款。",2,"2026-07-17 02:30:09","CREATED_QUERY"]