In questa pagina viene spiegato come verificare la risposta di un utente a una richiesta reCAPTCHA dal backend della tua applicazione.
Per gli utenti del Web, puoi ricevere il token di risposta in uno di questi tre modi:
g-recaptcha-response
parametro POST quando l'utente invia il modulo sul tuo sitogrecaptcha.getResponse(opt_widget_id)
dopo che l'utente completa la sfida reCAPTCHA- Come argomento della stringa per la funzione di callback se
data-callback
è specificato nell'attributo del tagg-recaptcha
o nel parametro di callback nel metodogrecaptcha.render
Per gli utenti di librerie Android, puoi chiamare il metodo SafetyNetApi.RecaptchaTokenResult.getTokenResult() per ricevere un token di risposta se lo stato viene restituito correttamente.
Restrizioni dei token
Ogni token di risposta dell'utente di reCAPTCHA è valido per due minuti e può essere verificato solo una volta per prevenire gli attacchi di riproduzione. Se hai bisogno di un nuovo token, puoi eseguire di nuovo la verifica reCAPTCHA.
Dopo aver ricevuto il token di risposta, devi verificarlo entro due minuti con reCAPTCHA utilizzando la seguente API per assicurarti che il token sia valido.
Richiesta API
URL: https://www.google.com/recaptcha/api/siteverify METODO: POST
Parametro POST | Descrizione |
---|---|
secret | Obbligatorio. La chiave condivisa tra il tuo sito e reCAPTCHA. |
risposta | Obbligatorio. Il token di risposta dell'utente fornito dall'integrazione lato client di reCAPTCHA sul tuo sito. |
Remoteip | Campo facoltativo. L'indirizzo IP dell'utente. |
Risposta API
La risposta è un oggetto 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
}
Per 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
}
Messaggio del codice di errore
Codice di errore | Descrizione |
---|---|
input-segreto mancante | Parametro del secret mancante. |
secret-input non valido | Il parametro secret non è valido o è in un formato non corretto. |
input-risposta-mancante | Parametro di risposta mancante. |
risposta-input non valida | Il parametro di risposta non è valido o è in un formato non corretto. |
richiesta non valida | La richiesta non è valida o è in un formato non corretto. |
timeout o duplicato | La risposta non è più valida: è troppo vecchia o è stata utilizzata in precedenza. |