Verifica della risposta dell'utente

In questa pagina viene spiegato come verificare la risposta di un utente a una richiesta reCAPTCHA dal backend della tua applicazione.

Per gli utenti web, puoi ottenere il token di risposta dell'utente in uno dei tre modi seguenti:

  • g-recaptcha-response parametro POST quando l'utente invia il modulo sul tuo sito
  • grecaptcha.getResponse(opt_widget_id) dopo che l'utente ha completato la verifica reCAPTCHA
  • Come argomento stringa per la funzione di callback se data-callback è specificato nell'attributo del tag g-recaptcha o nel parametro di callback nel metodo grecaptcha.render

Per gli utenti della libreria Android, puoi chiamare il metodo SafetyNetApi.RecaptchaTokenResult.getTokenResult() per ottenere un token di risposta se lo stato viene restituito.

Restrizioni relative ai token

Ogni token di risposta dell'utente reCAPTCHA è valido per due minuti e può essere verificato solo una volta per prevenire gli attacchi di ripetizione. Se ti serve un nuovo token, puoi eseguire nuovamente la verifica reCAPTCHA.

Dopo aver ricevuto il token di risposta, devi verificarlo entro due minuti con reCAPTCHA utilizzando l'API seguente per assicurarti che il token sia valido.

Richiesta API

URL: https://www.google.com/recaptcha/api/siteverify METODO: POST

Parametro POST Descrizione
secret Obbligatoria. La chiave condivisa tra il tuo sito e reCAPTCHA.
risposta Obbligatoria. Il token di risposta dell'utente fornito dall'integrazione lato client di reCAPTCHA sul tuo sito.
IP remoto Campo facoltativo. L'indirizzo IP dell'utente.

Risposta dell'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 per 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
segreto-input-mancante Parametro secret mancante.
segreto-input-non valido Il parametro secret non è valido o è in un formato non corretto.
risposta-mancante-input 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.