Sprawdzanie odpowiedzi użytkownika

Na tej stronie dowiesz się, jak zweryfikować odpowiedź użytkownika na test reCAPTCHA z backendu aplikacji.

W przypadku użytkowników internetu token odpowiedzi użytkownika można uzyskać na 3 sposoby:

  • Parametr POST g-recaptcha-response, gdy użytkownik przesyła formularz w Twojej witrynie
  • grecaptcha.getResponse(opt_widget_id) po ukończeniu przez użytkownika wyzwania reCAPTCHA
  • jako argumentu w postaci ciągu funkcji wywołania zwrotnego, jeśli w atrybucie tagu g-recaptcha lub parametrze wywołania zwrotnego w metodzie grecaptcha.render podany jest parametr data-callback,

W przypadku użytkowników biblioteki Androida możesz wywołać metodę SafetyNetApi.RecaptchaTokenResult.getTokenResult(), aby uzyskać token odpowiedzi, gdy stan się powiedzie.

Ograniczenia dotyczące tokenów

Każdy token odpowiedzi użytkownika reCAPTCHA jest ważny przez 2 minuty i można go zweryfikować tylko raz, aby zapobiec ponownym atakom. Jeśli potrzebujesz nowego tokena, możesz ponownie uruchomić reCAPTCHA.

Po otrzymaniu tokena odpowiedzi musisz potwierdzić go w ciągu 2 minut za pomocą reCAPTCHA przy użyciu poniższego interfejsu API. W ten sposób zyskasz pewność, że token jest prawidłowy.

Żądanie do interfejsu API

URL: https://www.google.com/recaptcha/api/siteverify Metoda: POST

Parametr POST Opis
obiekt tajny Wymagany. Współdzielony klucz między witryną a reCAPTCHA.
odpowiedź Wymagany. Token odpowiedzi użytkownika dostarczany przez integrację reCAPTCHA w Twojej witrynie.
pilot Opcjonalnie. Adres IP użytkownika.

Odpowiedź interfejsu API

Odpowiedź to obiekt 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 reCAPTCHA:

{
  "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
}

Dokumentacja kodu błędu

Kod błędu Opis
brak danych wejściowych-tajny-tajny Brak parametru obiektu tajnego.
nieprawidłowe dane wejściowe-tajne Parametr obiektu tajnego jest nieprawidłowy lub błędnie sformatowany.
brakujące-wprowadzenie-odpowiedź Brak parametru odpowiedzi.
nieprawidłowa odpowiedź Parametr odpowiedzi jest nieprawidłowy lub błędnie sformatowany.
nieprawidłowe żądanie Żądanie jest nieprawidłowe lub ma nieprawidłowy format.
limit czasu lub duplikat Odpowiedź jest już nieaktualna: jest zbyt stara lub została już użyta.