Проверка ответа пользователя,Проверка ответа пользователя

На этой странице объясняется, как проверить ответ пользователя на запрос reCAPTCHA из серверной части вашего приложения.

Для веб-пользователей вы можете получить токен ответа пользователя одним из трех способов:

  • Параметр g-recaptcha-response POST, когда пользователь отправляет форму на вашем сайте.
  • grecaptcha.getResponse(opt_widget_id) после того, как пользователь завершит проверку reCAPTCHA
  • В качестве строкового аргумента вашей функции обратного вызова , если data-callback указан либо в атрибуте тега g-recaptcha , либо в параметре обратного вызова в методе grecaptcha.render .

Для пользователей библиотеки Android вы можете вызвать метод SafetyNetApi.RecaptchaTokenResult.getTokenResult() , чтобы получить токен ответа, если статус возвращается успешно.

Ограничения по токену

Каждый токен ответа пользователя reCAPTCHA действителен в течение двух минут и может быть проверен только один раз для предотвращения повторных атак. Если вам нужен новый токен, вы можете повторно запустить проверку reCAPTCHA.

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

Запрос API

URL: https://www.google.com/recaptcha/api/siteverify МЕТОД: ОТПРАВКА

POST-параметр Описание
секрет Необходимый. Общий ключ между вашим сайтом и reCAPTCHA.
ответ Необходимый. Маркер ответа пользователя, предоставляемый клиентской интеграцией reCAPTCHA на вашем сайте.
удаленный Необязательный. IP-адрес пользователя.

Ответ API

Ответ представляет собой объект JSON:

{
  "success": true|false,
  "challenge_ts": timestamp,  // timestamp of the challenge load (ISO format yyyy-MM-dd'T'HH:mm:ssZZ)
  "hostname": string,         // the hostname of the site where the reCAPTCHA was solved
  "error-codes": [...]        // optional
}

Для reCAPTCHA Android:

{
  "success": true|false,
  "challenge_ts": timestamp,  // timestamp of the challenge load (ISO format yyyy-MM-dd'T'HH:mm:ssZZ)
  "apk_package_name": string, // the package name of the app where the reCAPTCHA was solved
  "error-codes": [...]        // optional
}

Ссылка на код ошибки

Код ошибки Описание
отсутствующий секрет ввода Секретный параметр отсутствует.
недействительный секрет ввода Секретный параметр недействителен или имеет неверный формат.
отсутствующий ответ на ввод Отсутствует параметр ответа.
неверный ответ на ввод Параметр ответа недействителен или имеет неправильный формат.
плохой запрос Запрос недействителен или имеет неправильный формат.
тайм-аут или дубликат Ответ больше недействителен: либо он слишком старый, либо использовался ранее.
,

На этой странице объясняется, как проверить ответ пользователя на запрос reCAPTCHA из серверной части вашего приложения.

Для веб-пользователей вы можете получить токен ответа пользователя одним из трех способов:

  • Параметр g-recaptcha-response POST, когда пользователь отправляет форму на вашем сайте.
  • grecaptcha.getResponse(opt_widget_id) после того, как пользователь завершит проверку reCAPTCHA
  • В качестве строкового аргумента вашей функции обратного вызова , если data-callback указан либо в атрибуте тега g-recaptcha , либо в параметре обратного вызова в методе grecaptcha.render .

Для пользователей библиотеки Android вы можете вызвать метод SafetyNetApi.RecaptchaTokenResult.getTokenResult() , чтобы получить токен ответа, если статус возвращается успешно.

Ограничения по токену

Каждый токен ответа пользователя reCAPTCHA действителен в течение двух минут и может быть проверен только один раз для предотвращения повторных атак. Если вам нужен новый токен, вы можете повторно запустить проверку reCAPTCHA.

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

Запрос API

URL: https://www.google.com/recaptcha/api/siteverify МЕТОД: ОТПРАВКА

POST-параметр Описание
секрет Необходимый. Общий ключ между вашим сайтом и reCAPTCHA.
ответ Необходимый. Маркер ответа пользователя, предоставляемый клиентской интеграцией reCAPTCHA на вашем сайте.
удаленный Необязательный. IP-адрес пользователя.

Ответ API

Ответ представляет собой объект JSON:

{
  "success": true|false,
  "challenge_ts": timestamp,  // timestamp of the challenge load (ISO format yyyy-MM-dd'T'HH:mm:ssZZ)
  "hostname": string,         // the hostname of the site where the reCAPTCHA was solved
  "error-codes": [...]        // optional
}

Для reCAPTCHA Android:

{
  "success": true|false,
  "challenge_ts": timestamp,  // timestamp of the challenge load (ISO format yyyy-MM-dd'T'HH:mm:ssZZ)
  "apk_package_name": string, // the package name of the app where the reCAPTCHA was solved
  "error-codes": [...]        // optional
}

Ссылка на код ошибки

Код ошибки Описание
отсутствующий секрет ввода Секретный параметр отсутствует.
недействительный секрет ввода Секретный параметр недействителен или имеет неверный формат.
отсутствующий ответ на ввод Отсутствует параметр ответа.
неверный ответ на ввод Параметр ответа недействителен или имеет неправильный формат.
плохой запрос Запрос недействителен или имеет неправильный формат.
тайм-аут или дубликат Ответ больше недействителен: либо он слишком старый, либо использовался ранее.