简体中文 | English
面向 x.ai / Grok 公开 Web 认证链路 的协议研究客户端:用纯 HTTP 复现
注册 → SSO → OAuth PKCE(Grok Build / CLI scope)→ 导出本地 auth JSON
整条链路,便于协议分析、互操作性研究与本地集成测试。
默认路径不依赖浏览器。Turnstile 通过兼容 createTask 协议的打码服务完成。
Caution
使用本项目即视为同意 NOTICE 的全部条款。
项目按 AS IS 提供、无任何担保、维护者不负任何责任。
仅限:你拥有的系统 / 合法 CTF / 授权 bug bounty in-scope 资产 / 安全研究与教学。
严禁:欺诈、批量造号转售、黑产代注册、未授权目标、故意违反第三方 ToS。
一切法律责任由使用者自负。不接受条款就不要使用、不要 clone、删除全部副本。
| 说明 | |
|---|---|
| 允许 | 自有账号与本地环境;明确授权范围内的安全研究;CTF / 课堂 / 学术协议研究;离线阅读源码 |
| 禁止 | 欺诈滥用、批量造号转售、代注册牟利、未授权自动化攻击、规避平台安全机制用于非法目的 |
| 责任 | 账号封禁、额度损失、民事 / 刑事 / 行政责任等全部由使用者承担 |
| 关系 | 与 xAI、Grok、Cloudflare、CLIProxyAPI、任何打码 / 邮箱服务商无隶属、无授权、无赞助 |
完整条款见 NOTICE。License 是 MIT,但 MIT 不是免责的全部。
不确定是否合法 —— 不要运行。先问律师,或先联系目标平台安全团队。
研究型协议客户端,不是官方 SDK。主要能力:
| 阶段 | 内容 |
|---|---|
| 注册 | accounts.x.ai 邮箱验证码(gRPC-web)+ Turnstile + Next.js Server Action 建号 |
| SSO | 从建号响应 / set-cookie 链提取 session JWT,供 OAuth 复用 |
| OAuth | auth.x.ai PKCE + CookieSetter + consent;失败时再走 CreateSession |
| 导出 | 写出与 CLIProxyAPI 兼容的本地 type=xai auth 文件(Grok Build 通道) |
值得看的点:
- 协议优先:默认纯 HTTP(
curl_cffi指纹会话),不启浏览器 - SSO 复用:注册 session 可跳过 OAuth 二次打码(快路径)
- 互操作导出:
cli-chat-proxy.grok.com+ grok-cli headers,不是api.x.ai计费 API 密钥通道 - 并发注册:注册可多线程;OAuth 默认串行,降低会话冲突
flowchart LR
A[run.py] --> B[注册 client.py<br/>邮箱 + Turnstile]
B --> C[SSO sso.py]
C --> D[OAuth oauth_protocol.py<br/>PKCE + consent]
D --> E[token 交换]
E --> F[cliproxyapi_auth/*.json<br/>CLIProxyAPI 可加载]
SSO 不能单独变成 CPA auth 文件;必须完成 OAuth 拿到 access_token / refresh_token 后才能导出。
这不是「零配置即用」的产品。至少需要:
- Python 3.9+
- YesCaptcha(或兼容 createTask 协议)的 API key,用于 Turnstile
- 临时邮箱:Tempmail.lol API key,或你自建的 Cloudflare D1 别名邮箱
- (可选)HTTP(S) 代理
- (可选)本地已安装的 CLIProxyAPI,用于加载导出的 auth 目录
平台条款、风控、接口变更会导致链路随时失效;维护者无义务持续适配。
git clone https://github.com/<you>/grok-build-auth.git
cd grok-build-auth
python -m venv .venv
# Windows
.venv\Scripts\activate
# macOS / Linux
# source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
# 编辑 .env:只填你自己的密钥,切勿提交 .env| 变量 | 必须 | 说明 |
|---|---|---|
YESCAPTCHA_API_KEY |
是 | Turnstile 打码 |
TEMPMAIL_API_KEY |
-e tempmail 时 |
临时邮箱 |
CLOUDFLARE_API_TOKEN |
-e cloudflare 时 |
CF API token |
CLOUDFLARE_ACCOUNT_ID |
同上 | CF 账户 |
CLOUDFLARE_D1_DB_ID |
同上 | D1 库 ID |
ALIAS_MAIL_DOMAINS |
同上 | 你控制的邮箱域名(逗号分隔) |
CLIPROXYAPI_AUTH_DIR |
否 | 默认 ./cliproxyapi_auth |
HTTPS_PROXY / HTTP_PROXY |
否 | 代理 |
永远不要把 .env、token 目录提交进 Git。详见 SECURITY.md。
# 单次完整链路:注册 + SSO + OAuth + 导出
python run.py -n 1
# 并发注册(OAuth 仍串行)
python run.py -n 5 -t 3
# 自建 Cloudflare 邮箱后端
python run.py -n 1 -e cloudflare
# 仅注册 + SSO(不导出 CPA auth)
python run.py -n 1 --no-oauth
# 指定 CLIProxyAPI auth 目录
python run.py -n 1 --cliproxyapi-auth-dir /path/to/CLIProxyAPI/data/auth
# 协议 OAuth 调试日志
python run.py -n 1 --oauth-debug# 已有账号:单独走 OAuth
python xai_oauth_login.py
# 把 oauth_output 记录导出为 CPA auth
python xai_oauth_export_cliproxyapi.py --cliproxyapi-auth-dir ./cliproxyapi_auth
# 探测 Build 用量信号(不打印完整 token)
python xai_build_quota_probe.py --auth-dir ./cliproxyapi_auth{
"type": "xai",
"auth_kind": "oauth",
"access_token": "...",
"refresh_token": "...",
"base_url": "https://cli-chat-proxy.grok.com/v1",
"headers": {
"X-XAI-Token-Auth": "xai-grok-cli",
"x-grok-client-version": "0.2.93",
"x-grok-client-identifier": "grok-shell"
}
}将 CLIProxyAPI 的 auth-dir 指向该目录后按 CPA 文档热加载即可(仅限合法自用场景)。
注册
- Warm-up + 动态抓取 Next.js action
- 邮箱验证码(gRPC-web)
- Turnstile
- 建号 + 提取 SSO
Build OAuth
- PKCE authorize
- 有 SSO:CookieSetter + consent(通常无需二次打码)
- 无 SSO:Turnstile + CreateSession,再 consent
- code → token → 写本地 auth JSON
接口与额度策略以平台实时行为为准,文档数值仅供研究参考。
.
├── NOTICE # 具有约束力的使用须知(必读)
├── LICENSE # MIT
├── README.md / README.en.md
├── SECURITY.md
├── run.py # 主入口
├── xai_oauth_login.py
├── xai_oauth_export_cliproxyapi.py
├── xai_build_quota_probe.py
├── requirements.txt
├── .env.example
├── xconsole_client/ # 协议库(Python 包名,历史命名)
│ ├── client.py # 注册
│ ├── oauth_protocol.py # 纯协议 OAuth
│ ├── xai_oauth.py # PKCE / 导出 / 回退
│ └── sso.py / solver.py / ...
└── alias_mail/ # 可选:Cloudflare 邮箱助手
运行产物(已 gitignore):sso_output/、oauth_output/、accounts_output/、cliproxyapi_auth/。
- 依赖第三方公开接口,随时可能因部署变更而失效
- Turnstile / 邮箱服务稳定性影响成功率与耗时
- 并发过高可能触发平台风控;研究用途请保持克制
- SSO alone ≠ CPA auth;必须完成 OAuth
- Playwright 回退为可选依赖,默认协议路径不需要
欢迎在合法研究与授权场景下贡献:
- 协议变更后的适配(附抓包对比 / 复现步骤)
- 文档与翻译完善
- 测试与健壮性(超时、重试、错误分类)
- 脱敏后的研究笔记(禁止提交真实 token / 邮箱 / cookie)
不接受意图用于未授权滥用、批量黑产、绕过平台安全策略的 PR / Issue。
安全问题请走私密渠道,见 SECURITY.md。
| 渠道 | 用途 |
|---|---|
| LINUX DO | 技术讨论、协议研究反馈、长期记录 |
QQ 群 1058789350 |
中文圈实时交流 |
| GitHub Issues | bug 报告与 PR(主入口) |
- curl_cffi — TLS / HTTP2 指纹会话
- 相关公开 Web 标准:OAuth 2.0、PKCE、gRPC-web
Important
使用本项目即视为你已完整阅读、完全理解、并明确接受 NOTICE 的全部条款。
不能接受 —— 不要使用本项目,删除所有副本。
摘要(完整文本以 NOTICE 为准):
- AS IS:无适销性、特定用途、持续兼容等任何担保。
- 仅限授权范围:自有系统 / 合法 CTF / 授权研究;禁止欺诈、批量转售、未授权目标。
- 责任自负:含账号封禁、民事 / 刑事 / 行政责任、第三方索赔等。
- 维护者无义务回复 issue、修 bug、做协议适配或提供支持。
- 无隶属关系:不代表 xAI、Grok、Cloudflare、CLIProxyAPI 或任何提及的第三方。
License:MIT · 使用须知:NOTICE · 安全:SECURITY.md