2016-04-20 8 views
3

стороне клиента кодКак проверить Google капчу

<script src='https://www.google.com/recaptcha/api.js'></script> 
<script> 
    var verified = function() { 
     document.getElementById("loginform").submit(); 
    }; 
</script>  

<form action="www.example.com/" method="POST" id="loginform" onsubmit=" return validation()"> 
    <input id="email" maxlength="80" name="email" size="20" type="text" placeholder="Enter Your Email" style="margin-bottom: 30px;"/><br> 
    <div id="captchadiv"> 
     <div class="g-recaptcha" data-sitekey="site key" data-callback="verified"></div> 
    </div> 
    <button type="submit" value="Submit" id="reg_submit" style=" display:block;margin: 0 auto;"><img src="/favicon.png" style="width: 20px;float: left;" />Sign in</button>     
</form> 

Боковой Серверный код

reCAPTCHA=require('recaptcha2') 

     recaptcha=new reCAPTCHA({ 
      siteKey:'site key', 
      secretKey:'secretKey' 
     }) 

Я работаю на node js .Я с помощью Google recaptcha2 и когда я вижу много примера и все примеры проверяют recaptcha, используя форму submit. Они определяют в действии, но мой метод действия используется в другой навигации, поэтому я могу использовать запрос get, post. Я не знаю, как использовать get, post запрос для recaptcha. Я хочу проверить recaptcha на стороне сервера, используя get,post.

Мне нужна помощь при работе с проверкой подлинности. Спасибо заранее!

ответ

1

Пожалуйста, попробуйте этот код

стороне клиента код не более безопасным, так, пожалуйста, используйте обе боковые код

стороне клиента

function validateform(){ 
    var captcha_response = grecaptcha.getResponse(); 
     if(captcha_response.length == 0 || grecaptcha != undefined) 
     { 
      // Captcha is not Passed 
      return ' Please verify you are not a robot.'; 
     }else{ 
      $.get('/captchaTest',{'response':captcha_response},function(response){ 
       if(response == undefined && response.responseCode == undefined && response.responseDesc == undefined && response.responseCode !== 0 && response.responseDesc !== 'Sucess'){ 
        return ' You are a robot.'; 
       } 
       grecaptcha.reset(); 
      }); 
     } 
} 

стороне сервера

app.get('/captchaTest',function(req,res){ 
    var requestQuery = req.query; 
    if(requestQuery != undefined && requestQuery != '' && requestQuery != null && requestQuery.response != undefined && requestQuery.response != '' && requestQuery.response != null){ 
     var response = requestQuery.response; 
      var verificationUrl = "https://www.google.com/recaptcha/api/siteverify?secret="+ secret_key +"&response=" +response; 
      // Hitting GET request to the URL, Google will respond with success or error scenario. 
      request(verificationUrl,function(error,response,body) { 
      body = JSON.parse(body); 
      // Success will be true or false depending upon captcha validation. 
       if(body.success !== undefined && !body.success) { 
        res.send({"responseCode" : 1,"responseDesc" : "Failed captcha verification"}); 
       }else{ 
        res.send({"responseCode" : 0,"responseDesc" : "Sucess"}); 
       } 
      }); 
    }else{ 
     res.send({"responseCode" : 1,"responseDesc" : "Failed captcha verification"}); 
    } 
}); 
+0

Да это работает но если у вас есть идея о модуле узла recaptcha, пожалуйста, помогите мне, потому что модуль узла более безопасен. –

+0

. Я попробую до сих пор, я не работаю над модулем recaptcha node –

Смежные вопросы