接入谷歌Google人机验证:reCaptcha进行安全验证

我们在开发网站的时候,经常需要各种人机验证,那我们就来学习下,网站如何接入谷歌Google人机验证:reCaptcha进行安全验证,本次使用的是 Google人机验证 3.0版本


接入谷歌Google人机验证:reCaptcha进行安全验证


Google人机验证V3

recaptcha v3为每个请求返回一个没有用户摩擦的分数,评分是基于用户与您的站点的交互,并使您能够为您的站点采取适当的行动。大约0.5是阀值,低于这个阀值,就需要进行一些识别和处理。

申请密钥

1、先要有一个google账户,然后再去reCaptcha官网申请网站为:https://developers.google.com/recaptcha/(需要过翻,你懂的)

2、去https://www.google.com/recaptcha/admin#list 里面去创建秘钥对,并且查看

接入谷歌Google人机验证:reCaptcha进行安全验证

申请

接入谷歌Google人机验证:reCaptcha进行安全验证

查看密钥

大致流程:

1.页面加载完毕,会自动去访问app.js会进行回调,拿到token后,将token传递给后端,

2.后端拿到token,去调用recaptcha提供的校验接口,进行校验,调用成功,返回json数据,后端可以根据json数据拿到分数字段

3.根据分数做自定义验证,或者直接响应异常

注意点:鉴于国情,在国内使用的话,需要将demo中所有的www.google.com替换成www.recaptcha.net不然无法使用reCAPTCHA

创建页面

前端部分代码:

<script src="https://www.recaptcha.net/recaptcha/api.js?render=公钥"></script> <script>         grecaptcha.ready(function() {             grecaptcha.execute('公钥', {action: 'login'}).then(function(token) {                 $.ajax({                     type: "POST",                     url:"/check",                     data: {"token":token},                     success: function(result) {                         alert(result);                     }                 });             });         }); </script>

服务器端就需要看根据前端提交过来的token进行校验,注意,你可以使用ajax提交,也可以吧token插入到HTML的input hidden隐藏框,一起提交到后端进行校验

后端校验部分代码,java代码,其他编程语言类似,核心就是请求校验的接口:

public String check(HttpServletRequest request) {         String checkCode = request.getParameter("token");         Map<String, Object> map = new HashMap<>();         // 私钥         map.put("secret", "私钥");         map.put("response", checkCode);         String json = MyHttpRequest.sendPost("https://www.recaptcha.net/recaptcha/api/siteverify", map, "UTF-8");         return json; }

好了,其实核心也很简单,按照上面的流程过程知道了,就可以实现。

reCaptcha hashmap Google token https alert http json ajax Java html 谷歌 流程 字段 OT IT
分享到:

您可能还会对下面的文章感兴趣: