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 metodziegrecaptcha.render
podany jest parametrdata-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. |