给网站添加谷歌验证(我不是机器人)

本文档指导如何为网站添加谷歌reCAPTCHA验证。首先,需在谷歌网站注册并获取Site key和Secret key。接着,在前端通过引入js并设置data-sitekey将reCAPTCHA集成到表单中。用户提交表单时,携带g-recaptcha-response到后端。后端使用Secret key进行验证,代码参考链接提供。

1、去谷歌网站。(如果没有谷歌gmail,也许还要注册gmail并登陆)

https://www.google.com/recaptcha/admin#list

2、注册要验证的网站。


  • Label中随意填写个标签。
  • 'Choose the type of reCAPTCHA'中选择验证类型。第一个是网站。第二个只是后台验证。第三个是安卓。
  • ‘Domains’中填写要验证的域名。这个就和网站关联起来了。
  • 同意服务条款之后。点击‘register’

3、集成文档。

注册完成后会看到下面的内容。

点击之后。会有集成方法。

‘keys’里面有2个key:Site key是给前端放在HTML表单中的,Secret key是前端提交表单之后。后台去请求谷歌用的。

4、前端集成要点:
  1. 引入js <script src='https://www.google.com/recaptcha/api.js'></script>
  2. 把这个添加到表单中。<div class="g-recaptcha" data-sitekey="6Lee1XAUAAAAAMjH4T6yMzgkq6iwdIurjfpYKBx0"></div>
    用户提交表单之后。会有个名字是g-recaptcha-response的input框。提交到后台。
5、后端验证:

后端验证直接上代码:

//组装请求
    let options = {
        method: 'POST',
        uri: 'https://www.google.com/recaptcha/api/siteverify',
        form: {
            secret: '上面的Secret key',
            response:fields['g-recaptcha-response'] 这里获取前端表单的g-recaptcha-response
        }
    };
    //请求谷歌验证
    let verifyBody = await  requestPromise(options).catch(err =>{
        ctx.throw(err.message);
    });
    let  verifyResult = JSON.parse(verifyBody);
    if (!verifyResult.success)
        ctx.throw("' I'm not a robot ' verification failed");

转载于:https://my.oschina.net/kunBlog/blog/2054631

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值