Antwort des Nutzers überprüfen

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 sendet
  • grecaptcha.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-Attribut g-recaptcha oder im Callback-Parameter in der Methode grecaptcha.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.