2017-10-01 5 views
1

On dirait que le google recaptcha fonctionne de telle sorte que si une tentative de vérification a été faite avec un jeton particulier, il ne peut plus être utilisé.Comment réinitialiser Google recaptcha avec react-google-recaptcha

Docs indique que « vous devez appeler grecaptcha.reset() pour demander à l'utilisateur final de vérifier avec reCAPTCHA nouveau »

Je suis en train de tenter cela en utilisant le package NPM réagir-google-recaptcha.

Voici mon code:

function onChange(grecaptcha) { 
    console.log(grecaptcha); 
    grecaptcha.reset(); // this doesn't work 
    } 

class Captcha extends React.Component { 

render() { 
    return <div> 
    <Recaptcha 
     sitekey='#' 
     onChange={onChange(this)} 
    /> </div> }} 

Quand j'ai essayé de faire les validations côté serveur en utilisant l'api google https://www.google.com/recaptcha/api/siteverify avec la réponse et la valeur secrète, la réponse de succès Evalue toujours à « false » après la première validation. Pour éviter cela, je réinitialise le grecaptcha comme suggéré dans les docs mais cela ne fonctionne pas.

Tout ce qui me manque?

Merci à l'avance

EDIT:

https://github.com/dozoisch/react-google-recaptcha offre la remise à zéro() fonction d'utilité qui est ce que je suis en train d'appeler après que l'utilisateur résout le captcha, se demandant si je ne suis pas l'appeler la La bonne façon.

Répondre

0

J'avais un problème similaire, et a dû changer à:

window.grecaptcha.reset();