如何获得Google Recaptcha V3响应

时间:2019-06-20 14:34:18

标签: javascript performance captcha recaptcha-v3

我正在使用Google reCaptcha v3。我正在尝试将其实现到我的aspx页面上。当我第一次加载页面时,我可以获得令牌。但是,当我单击按钮来处理我的页面时,它返回“没有reCaptcha客户端退出”。 我确实做了一个谷歌搜索,并没有解决我的问题。如何验证人机交互或机器人交互?

这是我在aspx页面上所拥有的:

<div id="RegistrationForm">
  <input type="text" id="FirstName" runat="server" value="" valtype="required" maxlength="150" />
  <input type="text" id="LastName" runat="server" value="" valtype="required" maxlength="150" />
  <input runat="server" id="Email" type="text" value="" valtype="required;regex:email" maxlength="350"/>
  <input type="hidden" id="g-recaptcha-response" name="g-recaptcha-response"/> <br />
  <div class="g-recaptcha" data-sitekey="SiteKey" data-callback="submit"></div>
  <input id="btnProcessOrder" type="button" name="ProcessOrder" onclick="confirmed = false;capt();" value="Save" />
</div>

这就是我尝试过的

<script src="https://www.google.com/recaptcha/api.js?render=SiteKey"></script>
<script type="text/javascript">
    //so when i load the page it gets my token and i can assign the value to g-recaptcha-response
   grecaptcha.ready(function() {
       grecaptcha.execute('SiteKey', { action: 'homepage' }).then(function (token) {
           console.log(token);
           document.getElementById('g-recaptcha-response').value = token;

  });
});


 Then when i try to verify the response as follows i get the error or it just does nothing:
function capt() {
var response = grecaptcha.getResponse();
$.ajax({
   type: "POST",
   url: 'https://www.google.com/recaptcha/api/siteverify', 
   data: {"secret" : "SecretKey", "response" : response, "remoteip":"localhost"},
   contentType: 'application/x-www-form-urlencoded',
   success: function(data) { console.log(data); }
});// i call this function on my button
}
</script>

我发现的大多数代码都是针对php的,我无法使用它。如何使它正常工作? 非常感谢您的回复

2 个答案:

答案 0 :(得分:1)

根据以上评论:

您按如下方式创建渲染功能

grecaptcha.render('example3', {
    'sitekey' : 'your_site_key',
    'callback' : verifyCallback,
});

然后从验证码获取响应,您创建了一个变量,该变量将这样存储数据:

var verifyCallBack = function(response) { 
    console.log(response); 
};

答案 1 :(得分:0)

在这里,我们已经有相同类型的问题: How to implement reCaptcha V3 in ASP.NET 请检查这些答案。

您还可以查看此演示项目以供参考。https://github.com/NIHAR-SARKAR/GoogleRecaptchav3-example-In-asp.net