Логотип «2Captcha»Перейти на главную страницу
Туториалы по обходу капчи

Эта статья была полезной?

Как решить reCAPTCHA Enterprise V2 на сайте app.oneassembly.com

Катя Пушкаренва

Технический специалист

Введение

Это руководство предназначено для разработчиков, которые автоматизируют авторизацию на сайте https://app.oneassembly.com, защищённом связкой Auth0 и reCAPTCHA Enterprise V2.

Если вы сталкиваетесь с ошибкой ERROR_CAPTCHA_UNSOLVABLE, не понимаете, как передать сессионные параметры, или получаете токены, которые не принимаются целевым сайтом — эта статья для вас.

Предварительные требования: понимание работы HTTP-запросов, структуры REST API и базовые навыки работы с командной строкой или инструментами типа curl/Postman.

Общие сведения

О технологии reCAPTCHA Enterprise V2

reCAPTCHA Enterprise — это расширенная версия Google reCAPTCHA для бизнес-критичных сценариев. Ключевые отличия от стандартной v2:

  • Требует передачи параметра enterprise=1 или использования специального типа задачи
  • Поддерживает дополнительные параметры: action, data-s, apiDomain, enterprisePayload
  • Чаще применяется на страницах с повышенной защитой, включая авторизацию через Auth0

Особенности Auth0-сессий

Страницы входа на базе Auth0 генерируют уникальные URL с параметром state, например:

Copy
https://login.oneassembly.com/u/login?state=hKFo2SB1MTFkY2IyWnN6cEtwMVZ5WkloWlFCTXJvNlc0VXp1VKFur3VuaXZlcnNhbC1sb2dpbqN0aWTZIEdWTDZIeElIU0RGZHV6SG9NMWpVdk1wMmM3Q1R0bjNSo2NpZNkgSnNOTlAwM3pxTDZVQUJjZHlncXFhczZySlpTdmduNzY

Этот параметр привязывает сессию к конкретному браузеру и IP. Если передать решателю базовый URL (https://app.oneassembly.com), он не увидит форму капчи и вернёт ERROR_CAPTCHA_UNSOLVABLE.

Ключевой вывод: всегда передавайте в websiteURL полный динамический URL со всеми параметрами сессии.

Подготовка окружения

Что потребуется для работы

  • API-ключ из личного кабинета 2Captcha
  • Инструмент для отправки HTTP-запросов: curl, Postman, httpie или любой язык программирования
  • Доступ к целевой странице: возможность открыть https://app.oneassembly.com и проследить редирект на login.oneassembly.com

Получение API-ключа

  1. Зарегистрируйтесь на 2captcha.com
  2. Перейдите в раздел настроек аккаунта
  3. Скопируйте ваш API-ключ
  4. Для безопасности храните ключ в переменной окружения или менеджере секретов
bash Copy
# Пример сохранения ключа (Linux/macOS)
export APIKEY_2captcha.com=ваш_ключ_здесь

Анализ страницы

Шаг 1. Откройте страницу авторизации

Перейдите по стартовому URL: https://app.oneassembly.com. Вас автоматически перенаправит на login.oneassembly.com с параметром state.

Шаг 2. Откройте инструменты разработчика

Нажмите F12, перейдите на вкладку Network. Обновите страницу и найдите запрос к anchor (загрузка виджета reCAPTCHA).

Шаг 3. Извлеките параметры

В запросе anchor найдите следующие параметры:

Параметр Где найти Пример значения
websiteKey (sitekey) Query string запроса anchor 6LeSRLUpAAAAAFjsCw4WqcgzM6imNrz2rSS4l_I1
websiteURL Адресная строка после редиректа Полный URL со state-параметром
apiDomain Query string (опционально) www.recaptcha.net

Важно: параметр data-s для данного случая не требуется, но если он присутствует в enterprisePayload, его также нужно передать.

Реализация

Создание задачи: RecaptchaV2EnterpriseTaskProxyless

Этот тип задачи подходит для большинства случаев. 2Captcha использует собственный пул прокси для решения капчи.

Эндпоинт: https://api.2captcha.com/createTask

Метод: POST

Content-Type: application/json

Пример запроса для oneassembly.com:

json Copy
{
    "clientKey": "YOUR_API_KEY",
    "task": {
        "type": "RecaptchaV2EnterpriseTaskProxyless",
        "websiteURL": "https://login.oneassembly.com/u/login?state=hKFo2SAyc2M1dldxTjhMS19TYV9kb2MxM0hCdjJ6MWdWbXZ5dqFur3VuaXZlcnNhbC1sb2dpbqN0aWTZIHdFREliaWgyRXNzSkFsUjVvcHFyVllnYU5sVHp4bHhUo2NpZNkgSnNOTlAwM3pxTDZVQUJjZHlncXFhczZySlpTdmduNzY",
        "websiteKey": "6LeSRLUpAAAAAFjsCw4WqcgzM6imNrz2rSS4l_I1",
        "isInvisible": false,
        "enterprisePayload": {}
    }
}

Создание задачи с прокси: RecaptchaV2EnterpriseTask

Используйте этот тип, если требуется совпадение IP между вашим запросом и запросом к Google (например, для сервисов вроде Google Search).

json Copy
{
    "clientKey": "YOUR_API_KEY",
    "task": {
        "type": "RecaptchaV2EnterpriseTask",
        "websiteURL": "https://login.oneassembly.com/u/login?state=hKFo2SAyc2M1dldxTjhMS19TYV9kb2MxM0hCdjJ6MWdWbXZ5dqFur3VuaXZlcnNhbC1sb2dpbqN0aWTZIHdFREliaWgyRXNzSkFsUjVvcHFyVllnYU5sVHp4bHhUo2NpZNkgSnNOTlAwM3pxTDZVQUJjZHlncXFhczZySlpTdmduNzY",
        "websiteKey": "6LeSRLUpAAAAAFjsCw4WqcgzM6imNrz2rSS4l_I1",
        "isInvisible": false,
        "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
        "cookies": "session_id=abc123; auth_token=xyz789",
        "proxyType": "http",
        "proxyAddress": "1.2.3.4",
        "proxyPort": 8080,
        "proxyLogin": "user23",
        "proxyPassword": "p4$w0rd"
    }
}

Получение результата

После создания задачи используйте taskId из ответа для опроса результата.

Эндпоинт: https://api.2captcha.com/getTaskResult

Метод: POST

Пример запроса:

json Copy
{
    "clientKey": "YOUR_API_KEY",
    "taskId": 74455221488
}

Пример успешного ответа:

json Copy
{
    "errorId": 0,
    "status": "ready",
    "solution": {
        "gRecaptchaResponse": "03ADUVZw...UWxTAe6ncIa",
        "token": "03ADUVZw...UWxTAe6ncIa"
    },
    "cost": "0.00299",
    "ip": "1.2.3.4",
    "createTime": 1692863536,
    "endTime": 1692863556
}

Использование токена

Полученный токен передайте на целевой сайт в поле формы g-recaptcha-response или используйте в запросе через колбэк-функцию, в зависимости от реализации фронтенда.

Пояснения к параметрам

Параметры задачи RecaptchaV2EnterpriseTaskProxyless

Параметр Тип Обязателен Описание
type String Да RecaptchaV2EnterpriseTaskProxyless или RecaptchaV2EnterpriseTask
websiteURL String Да Полный URL страницы с капчей, включая все параметры сессии
websiteKey String Да reCAPTCHA sitekey, извлекается из атрибута data-sitekey или параметра k в запросах к API
enterprisePayload Object Нет Дополнительные параметры для grecaptcha.enterprise.render, например {"s": "value"}
isInvisible Boolean Нет true для невидимой версии капчи (без чекбокса)
userAgent String Нет User-Agent браузера, с которым будет загружена капча
cookies String Нет Куки в формате key1=val1; key2=val2, передаются в браузер воркера
apiDomain String Нет Домен для загрузки капчи: google.com или recaptcha.net

Параметры прокси (только для RecaptchaV2EnterpriseTask)

Параметр Тип Обязателен Описание
proxyType String Да Тип прокси: http, socks4, socks5
proxyAddress String Да IP-адрес или хостнейм прокси
proxyPort Integer Да Порт прокси
proxyLogin String Нет Логин для базовой аутентификации
proxyPassword String Нет Пароль для базовой аутентификации

Песочница для тестирования

Перед интеграцией в продакшен протестируйте запросы в песочнице 2Captcha. Это позволит проверить формат запросов без расхода баланса.

Активировать песочницу

Типичные ошибки

Ошибка Вероятная причина Решение
ERROR_CAPTCHA_UNSOLVABLE Передан базовый URL вместо полного со state Используйте полный URL из адресной строки после редиректа Auth0
ERROR_WRONG_USER_KEY Неверный API-ключ Проверьте ключ в настройках аккаунта на 2captcha.com
ERROR_ZERO_BALANCE Недостаточно средств на балансе Пополните баланс или проверьте лимиты
ERROR_IP_NOT_ALLOWED Запрос с неавторизованного IP Добавьте IP в белый список в настройках API-ключа
Токен не принимается сайтом Несовпадение User-Agent, неверный способ передачи токена или отсутствие прокси Используйте тот же User-Agent, что и в браузере, добавьте резидентный прокси нужной локации, решите капчу вручную и проверьте, как именно токен отправляется

Обратная связь по результатам решения

После получения токена и проверки его на целевом сайте рекомендуется отправить обратную связь. Это помогает улучшать качество распознавания и в некоторых случаях возвращать средства за ошибочные решения.

Если сайт отклонил решение (неправильный токен)

Отправьте POST-запрос на эндпоинт reportIncorrect:

Эндпоинт: https://api.2captcha.com/reportIncorrect

Метод: POST

Content-Type: application/json

Пример запроса:

json Copy
{
    "clientKey": "YOUR_API_KEY",
    "taskId": 74455221488
}

Пример ответа:

json Copy
{
    "errorId": 0,
    "status": "success"
}

Важно: не используйте этот метод, если ваш процент успеха близок к 0%. Это может указывать на ошибку в вашем коде, а не в решениях капчи.

Если сайт принял решение (правильный токен)

Отправьте POST-запрос на эндпоинт reportCorrect:

Эндпоинт: https://api.2captcha.com/reportCorrect

Метод: POST

Content-Type: application/json

Пример запроса:

json Copy
{
    "clientKey": "YOUR_API_KEY",
    "taskId": 74455221488
}

Пример ответа:

json Copy
{
    "errorId": 0,
    "status": "success"
}

Политика возвратов

  • Каждый случай рассматривается индивидуально
  • Для стандартных капч проверяется корректность ответа
  • Для капч с токеном анализируется статистика исполнителя
  • Возврат средств не гарантируется по каждой жалобе
  • Итоговая сумма возвратов может отличаться от количества обращений

Отправляйте отчёты честно и только после реальной проверки на целевом сайте.

Дополнительные ресурсы

Контрольный список перед запуском

  • Получен и проверен API-ключ из личного кабинета 2captcha.com
  • Извлечён актуальный websiteKey со страницы login.oneassembly.com
  • В параметр websiteURL передан полный динамический URL со state-параметром
  • User-Agent в запросах совпадает с браузерным
  • Реализована обработка ошибок и логирование
  • Настроена отчётность через reportIncorrect / reportCorrect

Заключение

Решение reCAPTCHA Enterprise V2 на Auth0-страницах требует внимания к деталям: динамические сессионные параметры, корректные флаги API и согласованность окружения. Ключевое условие успеха — передача полного URL со state-параметром в поле websiteURL.

Используйте тип задачи RecaptchaV2EnterpriseTaskProxyless для большинства сценариев или RecaptchaV2EnterpriseTask, если требуется совпадение IP. Не забывайте отправлять обратную связь через reportIncorrect и reportCorrect — это помогает улучшать качество сервиса и возвращать средства за ошибочные решения.

Следуя этой инструкции, вы сможете стабильно получать рабочие токены и интегрировать решение капч в свои проекты на 2Captcha.