Cette page explique comment vérifier la réponse d'un utilisateur à un test reCAPTCHA à partir du test backend.
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 défi reCAPTCHA- En tant qu'argument de chaîne pour votre fonction de rappel si
data-callback
est spécifié dans l'attribut de tagg-recaptcha
ou dans le paramètre de rappel dans la méthodegrecaptcha.render
Pour les utilisateurs de la bibliothèque Android, vous pouvez appeler la méthode SafetyNetApi.RecaptchaTokenResult.getTokenResult() pour obtenir le jeton de réponse si l'état indique une réussite.
Restrictions concernant les jetons
Chaque jeton de réponse utilisateur reCAPTCHA est valide pendant deux minutes et ne peut être validé qu'une seule fois pour pour empêcher les attaques par rejeu. Si vous avez besoin d'un nouveau jeton, vous pouvez réexécuter 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 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 est incorrect. |
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. |