44 lines
2.2 KiB
Markdown
44 lines
2.2 KiB
Markdown
# Nodriver + Google OAuth Grok Registration
|
||
|
||
Конкретный пайплайн регистрации Grok (x.ai) через Google OAuth, когда прямой email signup блокируется Cloudflare.
|
||
|
||
## Проблема
|
||
|
||
`accounts.x.ai` блокирует ВСЕ bpproxy residential прокси (403). Даже DrissionPage с Turnstile patch получает `PageDisconnectedError` — Cloudflare рвёт CDP-соединение.
|
||
|
||
## Решение
|
||
|
||
Google OAuth flow через nodriver. Google (`accounts.google.com`) принимает bpproxy (302), а OAuth-редирект имеет больше шансов пройти.
|
||
|
||
## Файлы
|
||
|
||
- `grok_nodriver.py` — nodriver + email signup (DrissionPage-совместимый API)
|
||
- `grok_google_oauth.py` — nodriver + Google OAuth с Gmail аккаунтами
|
||
- `proxy_forwarder_9129.py` — локальный HTTP forward proxy на порту 9129
|
||
|
||
## Требования
|
||
|
||
- `nodriver` (pip install nodriver)
|
||
- `pyotp` для TOTP 2FA
|
||
- Gmail аккаунты в формате `tusk_gmail_accounts.json`:
|
||
```json
|
||
[{"email": "...@gmail.com", "password": "...", "2fa_secret": "..."}]
|
||
```
|
||
- Локальный proxy forwarder с bpproxy residential (Google принимает bpproxy)
|
||
|
||
## Flow
|
||
|
||
1. Запустить proxy forwarder: `python proxy_forwarder_9129.py`
|
||
2. `python grok_google_oauth.py N` (N = количество аккаунтов)
|
||
3. Nodriver открывает Chrome → `accounts.x.ai/sign-up` → ждёт Turnstile (~30 сек)
|
||
4. Ищет кнопку «Continue with Google» → кликает
|
||
5. Google OAuth: email → пароль → TOTP (если 2FA) → consent
|
||
6. Редирект на Grok → аккаунт создан
|
||
7. Сохраняет SSO в `sso/`
|
||
|
||
## Pitfalls
|
||
|
||
- **Proxy forwarder port conflicts**: не запускать несколько экземпляров на одном порту
|
||
- **bpproxy hardsession expiry**: прокси могут умереть через несколько часов
|
||
- **Google может запросить дополнительную верификацию**: phone, recovery email
|
||
- **TOTP timing**: код валиден 30 секунд, точное время на хосте критично |