Cette page explique comment vérifier 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 différentes:
- Paramètre POST
g-recaptcha-response
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 baliseg-recaptcha
ou dans le paramètre de rappel de la méthodegrecaptcha.render
.
Pour les utilisateurs de la bibliothèque Android, vous pouvez appeler la méthode SafetyNetApi.RecaptchaTokenResult.getTokenResult() pour obtenir un jeton de réponse si l'état renvoie un résultat positif.
Restrictions liées aux jetons
Chaque jeton de réponse utilisateur reCAPTCHA est valide pendant deux minutes et ne peut être validé qu'une seule fois pour éviter les attaques par rejeu. Si vous avez besoin d'un nouveau jeton, vous pouvez réexécuter la validation reCAPTCHA.
Après avoir obtenu le jeton de réponse, vous devez le valider dans un délai de deux minutes à l'aide de reCAPTCHA à l'aide de l'API suivante pour vous assurer qu'il est valide.
Requête API
URL: https://www.google.com/recaptcha/api/siteverify MÉTHODE: POST
Paramètre POST | Description |
---|---|
secret |
Obligatoire. Clé partagée entre votre site et reCAPTCHA. |
response |
Obligatoire. Jeton de réponse de l'utilisateur fourni par l'intégration de reCAPTCHA côté client sur votre site. |
remoteip |
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 |
---|---|
missing-input-secret | Le paramètre secret est manquant. |
invalid-input-secret | Le paramètre secret n'est pas valide, ou son format n'est pas correct. |
missing-input-response | Le paramètre de réponse est manquant. |
invalid-input-response | Le paramètre de réponse n'est pas valide, ou son format n'est pas correct. |
bad-request | La requête n'est pas valide, ou son format n'est pas correct. |
timeout-or-duplicate | La réponse n'est plus valide: elle est trop ancienne ou a déjà été utilisée. |