Recaptcha 客户端验证的理想解决方案

本文关键字:理想 解决方案 验证 客户端 Recaptcha | 更新日期: 2023-09-27 17:56:15

Recaptcha:我想将recaptcha用于基于jQuery和 ASP.net 构建的网站的登录页面。在发布这个问题之前,我用谷歌搜索了有关验证码的信息并研究了一下......将 recaptcha 与 ASP.NET 一起使用,它正在执行服务器端验证,我需要包含 reCaptcha 的 DLL 并将其用作服务器控件,然后使用页面的 isValid 属性对其进行验证。

我想要的是使用 jquery 对 recaptcha 进行客户端验证,我应该怎么做?

有没有好的教程来做到这一点或理想的解决方案?

Recaptcha 客户端验证的理想解决方案

你不能在客户端这样做。没有服务器的帮助,您无法做到这一点,因为 recaptcha 归 google 所有(它不是您的域),但您无法直接请求验证它。

由于安全原因,禁止跨域XMLHttpRequests。您也可以在填写验证码(recaptcha_response_fieldonblur)时对服务器进行 AJAX 调用并对其进行验证。

你到底

为什么要在客户端处理验证码?可能会在表单提交函数中挂接一些东西,如下所示:

$("#form1").submit(function(){
    // other validation
    if(reCaptchaValidated()==false){
        return false;
    }
});

你能阻止某人这样做吗:

$('#form1').unbind("submit").submit();
这是我

的解决方案

添加对谷歌 ajax recapcha 的引用并生成验证码。

<script src="http://www.google.com/recaptcha/api/js/recaptcha_ajax.js" ></script>
<script type="text/javascript">
  function showRecaptcha() {
     Recaptcha.create("6LfLrusSAAAAAIoi3XkbGvm2fLao3VjsNTjRoK-K", 'captchadiv', {
                            tabindex: 1,
                            theme: "white",
                            callback: Recaptcha.focus_response_field
     });
  }
  window.onload = function () { showRecaptcha(); }
</script>

网页条目

<form id="myform">
   <div id="captchadiv">
    </div>
 <input type="submit" value="Submit" />
</form>

创建 JavaScript 调用

<script type="text/javascript">
$('myform').submit(function() {
     $.getJSON("someurl/api/ValidateRecapcha", param).done(function (ret) {
                   if(ret) alert('recacha matched');
                   else alert('mismatched');
     })
})
</script>

我使用 ASP.net Webapi作为该服务并从这里下载了Recaptcha.dll https://developers.google.com/recaptcha/docs/aspnet

[HttpGet]
public bool ValidateRecapcha(string challengetKey, string input)
{
   var r = new Recaptcha.RecaptchaValidator();
   r.PrivateKey = "Recapcha Private Key"
   r.Challenge = challengetKey;
   r.Response = input;
   r.RemoteIP = "REMOTE_ADDR".ToServerVariables();
   var response = r.Validate();
   return response.IsValid;
}

希望这有帮助

查看QapTcha:带有jQuery和jQuery UI或AJAX FANCY CAPTCHA 的jQuery captcha系统 - jquery插件

以前用过它,它对我很有用..

如果您展示您已经拥有的内容可能会有所帮助,但我确实发现这可能与您正在寻找的东西一样。

使用客户端调用验证验证码

我建议使用谷歌的reCaptcha(是的,它是服务器端),因为客户端可以随时打开客户端验证码。

但无论如何,这里有8个使用jQuery的Cpatchas,包括教程。

8 jQuery CAPTCHA插件与教程

希望对:)有所帮助