Cette page explique comment valider la réponse d'un utilisateur à un test reCAPTCHA à partir du backend de votre application.
Pour les utilisateurs Web, vous pouvez obtenir le jeton de réponse de l'utilisateur de trois manières:
- Paramètre
g-recaptcha-response
POST lorsque l'utilisateur envoie le formulaire sur votre site grecaptcha.getResponse(opt_widget_id)
une fois que l'utilisateur a terminé le test reCAPTCHA- En tant qu'argument de chaîne de votre fonction de rappel si
data-callback
est spécifié dans l'attribut de tagg-recaptcha
ou dans le paramètre de rappel de la méthodegrecaptcha.render
Si vous utilisez la bibliothèque Android, vous pouvez appeler la méthode SafetyNetApi.RecaptchaTokenResult.getTokenResult() pour obtenir un jeton de réponse si l'état est renvoyé.
Restrictions relatives aux jetons
Chaque jeton de réponse utilisateur reCAPTCHA est valide pendant deux minutes et ne peut être validé qu'une seule fois pour empêcher les attaques par relecture. Si vous avez besoin d'un nouveau jeton, vous pouvez relancer la validation reCAPTCHA.
Une fois que vous avez obtenu le jeton de réponse, vous devez le valider dans les deux minutes avec reCAPTCHA à l'aide de l'API suivante pour vous assurer que le jeton est valide.
Requête API
URL: https://www.google.com/recaptcha/api/siteverify MÉTHODE: POST
Paramètre POST | Description |
---|---|
secret, code secret | Obligatoire. Clé partagée entre votre site et reCAPTCHA. |
réponse | Obligatoire. Jeton de réponse utilisateur fourni par l'intégration reCAPTCHA côté client sur votre site. |
télécommande | Facultatif. Adresse IP de l'utilisateur. |
Réponse de l'API
La réponse est un objet 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
}
Pour 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
}
Informations de référence sur les codes d'erreur
Code d'erreur | Description |
---|---|
secret-d'entrée manquant | Le paramètre secret est manquant. |
code secret d'entrée incorrect | Le paramètre secret n'est pas valide, ou son format n'est pas correct. |
réponse-entrée manquante | Le paramètre de réponse est manquant. |
réponse saisie incorrecte | Le paramètre de réponse n'est pas valide, ou son format n'est pas correct. |
demande incorrecte | La requête n'est pas valide, ou son format n'est pas correct. |
délai avant expiration ou doublon | La réponse n'est plus valide: elle est trop ancienne ou a déjà été utilisée. |