2016-04-20 10 views
3

Client-Seite CodeWie Google Captcha

<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> 

Server Side Code

reCAPTCHA=require('recaptcha2') 

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

ich arbeite auf node js .Ich bin mit Google recaptcha2 überprüfen und, wenn ich sehe viele Beispiel und alle Beispiel verifizieren recaptcha mit Formular senden. Sie definieren in Aktion, aber meine Aktionsmethode in anderen Navigation verwenden, so kann ich get, post Anfrage verwenden. Ich habe keine Idee, wie man get, post Anfrage für recaptcha verwendet. Ich möchte recaptcha auf Server-Seite mit get,post Anfrage verifizieren.

Ich brauche Hilfe bei der Back-End-Verifizierung. Vielen Dank!

Antwort

1

Bitte versuchen Sie diesen Code

Client-Seite Code nicht sicherer, so verwenden Sie bitte den beiden Seiten Code

Client-Seite

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(); 
      }); 
     } 
} 

Server-Seite

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

Ja es ist Arbeit aber wenn Sie Idee über Knoten-Modul von Recaptcha haben, bitte helfen Sie mir, weil Knoten-Modul sicherer ist –

+0

Ich werde versuchen, bis jetzt habe ich nicht auf Recaptcha Node-Modul arbeiten –