Auf dieser Seite wird erläutert, wie Sie die Antwort eines Nutzers auf eine reCAPTCHA-Abfrage im Back-End Ihrer Anwendung verifizieren.
Webnutzer haben drei Möglichkeiten, das Antworttoken des Nutzers abzurufen:
g-recaptcha-response
POST-Parameter, wenn der Nutzer das Formular auf Ihrer Website sendetgrecaptcha.getResponse(opt_widget_id)
, nachdem der Nutzer die reCAPTCHA-Aufgabe abgeschlossen hat- Als Stringargument für Ihre Callback-Funktion, wenn
data-callback
entweder im Tag-Attributg-recaptcha
oder im Callback-Parameter in der Methodegrecaptcha.render
angegeben ist.
Nutzer der Android-Bibliothek können die Methode SafetyNetApi.RecaptchaTokenResult.getTokenResult() aufrufen, um ein Antworttoken abzurufen, wenn der Status erfolgreich zurückgegeben wird.
Tokeneinschränkungen
Jedes reCAPTCHA-Nutzerantworttoken ist zwei Minuten lang gültig und kann nur einmal überprüft werden, um Replay-Angriffe zu verhindern. Wenn Sie ein neues Token benötigen, können Sie die reCAPTCHA-Überprüfung noch einmal ausführen.
Nachdem Sie das Antworttoken erhalten haben, müssen Sie es innerhalb von zwei Minuten mit reCAPTCHA und der folgenden API verifizieren, um sicherzustellen, dass das Token gültig ist.
API-Anfrage
URL: https://www.google.com/recaptcha/api/siteverify METHOD: POST
POST-Parameter | Beschreibung |
---|---|
secret |
Erforderlich. Der zwischen Ihrer Website und reCAPTCHA freigegebene Schlüssel. |
response |
Erforderlich. Das Nutzerantworttoken, das über die clientseitige reCAPTCHA-Integration auf Ihrer Website bereitgestellt wird. |
remoteip |
Optional. Die IP-Adresse des Nutzers. |
API-Antwort
Die Antwort ist ein JSON-Objekt:
{
"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
}
Für reCAPTCHA für 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
}
Fehlercode-Referenz
Fehlercode | Beschreibung |
---|---|
missing-input-secret | Der Secret-Parameter fehlt. |
invalid-input-secret | Der Secret-Parameter ist ungültig oder fehlerhaft. |
missing-input-response | Der Antwortparameter fehlt. |
invalid-input-response | Der Antwortparameter ist ungültig oder fehlerhaft. |
bad-request | Die Anfrage ist ungültig oder fehlerhaft. |
timeout-or-duplicate | Die Antwort ist nicht mehr gültig: Sie ist entweder zu alt oder wurde bereits verwendet. |