记录在使用 Google Recaptcha 中遇到的一些坑

因为在某一个项目中需要使用验证码(登陆注册之类的),又不想自己摸(太麻烦啦),于是就想着用 Google reCAPTCHA,想着这样就可以摸鱼之类的。(在此处 十分感谢一位神秘网友的支持,提高了我90%的办事效率。(原本只有10%这样子))

首先,你需要确定自己要用哪种方式来验证

Google reCAPTCHA 目前有两种验证方式,其中 v2 又有三种方式。

先说说 v3 ,这玩意说高级是挺高级,他验证所用的方式是通过用户的ip,浏览器啥的balabala的玩意给你一个评分,然后需要开发人员根据评分的大小来判断其是否是机器人,从而进行进一步的操作。举个例子,如果评分小于 0.5 ,基本就可以判定其是机器人,然后需要给用户进行电子邮箱的验证、手机短信验证码的验证等等。这种方法感觉让开发人员要做更多的工作,而且在使用的时候右下角还会有一个悬浮窗自豪地对世界说:

本网站 由 reCAPTCHA 提供保护

当然你是谷粉的话这不算什么,可能还觉得有点好看,但我在使用的时候这玩意破坏了样式,然后让整个网站布局变得莫名其妙(

所以果果在这里果断推荐 v2。v2 的话分为复选框形式和一个“不可见”形式。按照我不负责任的推测,我估摸不可见应该是在点击登录按钮的时候进行验证并弹出一个验证框(。?)所谓所见即所得,在实际的开发过程中,果果选用的是复选框形式。

申请 API Key

你可以在 https://www.google.com/recaptcha/admin/create 申请获得。填写 信息确保准确无误后,阅读并勾选 接受“reCAPTCHA 服务条款” 并提交。(由于是进行本地测试,所以域名你也可以填 localhost)

reCAPTCHA 注册成功界面

这里 reCAPTCHA 的原理是 先在浏览器端进行验证,验证成功后会返回一个token, 然后你就可以拿着这个 token 去请求 google reCAPTCHA 服务器,他就会给你返回成功或者失败。实际的东西在文档里写得很清楚,这里就简单提一下

编者注

由于 Google reCAPTCHA 服务器在国内无法访问,实际开发时建议使用 www.recaptcha.net 替换。

前端

果果在大佬的指点下,使用了 Vue (WebPack) 进行前端的开发(然后后面就疯狂推荐 react...)

在 Vue UI 安装 vue-recaptcha 依赖后,疯狂引入一波。

由于果果这里只有部分页面需要引入,然后又不想全局引入,于是用了一种脏方法来引入外部 js(如果有更好的方法欢迎大家留言QAQ,我也觉得这种方法真的好蠢(

let recaptcha = document.createElement("script");

recaptcha.src = "https://www.recaptcha.net/recaptcha/api.js?onload=vueRecaptchaApiLoaded&render=explicit";

recaptcha.async = true;

recaptcha.defer = true;

document.body.appendChild(recaptcha);

并在所需页面写入

import VueRecaptcha from 'vue-recaptcha';

components: { VueRecaptcha },

<vue-recaptcha ref="recaptcha" :loadRecaptchaScript="true" @verify="recaptchaVerified" @expired="recaptchaExpired" sitekey="之前申请的 client key"></vue-recaptcha>

@verify 那一块就是验证成功的回调函数啦,@expired 同理。一般来说,@verify 用来存那个 Token ,@expired 就 this.$refs.recaptcha.reset(); 一键安排重置。

然后注意在 data 开一个空变量用于存储 reCAPTCHA 返回的 TOKEN。

在所需部分 写下 HTML 元素。

然后这个验证还是不跟着布局走,没办法, 那向左偏就向左偏吧(

在用户点击登录的时候,记得判断一下 token 是否为空,为空的话让他去验证一下就行啦~

在发送登陆请求的时候,记得把 reCAPTCHA 返回的 token 结果一并提交上去哦(否则这次的人机身份验证将毫无意义(严肃))

后端

后端的操作其实就很简单了,直接向 reCAPTCHA 的 API 发送一个 post 请求,secret上带上刚才申请的 server key,response 就发送刚刚前端发来的 token,然后就会获得下面的一串神秘字符(其实这些玩意也是文档就有,自己查一下就行了)

总的来说,reCAPTCHA 作为一款验证系统,感觉还是挺友好的, (v3除外(来自果果的怨念) 省了很多做验证码的事,也省了被研究如何破解的心思

Guoguo

我的身体素质其实并不得行,算是肥胖的那一类,在班上体育成绩也十分落后,算得上是班上的倒数第一。

前几天刚刚测试了跳远,然而一直跳不过及格线,登记成绩的同学看了看,就笑着说,算了,让你及格吧。

然后我以前左手右手手腕都受过一点小伤,再加上吃太多,导致我的引体向上就一直是 0,那当然就是不及格的。

刚准备进行 1000 米测试,本来已经做好全部 0 蛋的打算了,开始跑的时候打算就先冲,后面再慢慢减速跑完就好。奇怪的是,刚开始跑竟然一跑就跑到了第三个,最后已经减速到快要走路的程度了,也跑到了第10个左右。最后跑完的时候,发现后面还有一群人集在一起跑,边跑还边喊着班级的口号。老师看起来不太开心。

你们这群人全部不及格

后面的同学笑着拍拍肩。

没事,大伙儿陪你不及格

Guoguo 2018-11-29 2个评论

【搞机篇】小米4 Android P 一个月上手体验

之前在坐和那里加了50块钱用魅蓝note2换了一台小米4想着刷机用,长期使用中大屏手机用户第一次上手感觉很小巧,十分适合我。唯一的不足就是不支持联通4G,甚至不支持联通3G,这也成为我抛弃它作为上学主力机的理由。

阅读全文→

【佛系生活】摩拜违停车辆(被)管理初体验(雾

摩拜日前在北京划定运营电子围栏,用户可以在电子围栏中骑行、停车。若停在电子围栏以外区域,将从第二次起收取5元的管理费用,缴纳费用后,如在24小时内将车辆骑回运营区域内,系统返还费用。 —— 北京青年报《摩拜单车违停两次将扣费5元》

最近两三个月的时间,附近的摩拜突然间少了很多,乱停乱放的单车也少了很多,大多数单车都到了指定的停车点停放,不过那个停车点太远了,所以就懒得上去用了。
对于我这种十个月甚至九个月都在家里躺着玩电脑的死肥宅来说,我也好久(没出过门了)没用过摩拜了,上一次用摩拜还是在不知道几个月之前,今早出来骑过村子顺便吃个早饭锁上车,反手就收到了停在禁停区的违停提醒。

虽然说这个措施好像已经几个月了,在以前停入违停区的时候仅仅会提醒单车停入了禁停区,可能会扣除信用积分巴拉巴拉的,但具体措施还是不够完善,经常在学校看到有将单车放在宿舍楼底下的,每当看到这种行为也感觉十分反感。不过,收取5块钱车辆管理费这还是无可厚非的,并且如果在规定时间内将任意禁停区的任意摩拜车辆骑出禁停区也会返还费用,不但管理车辆还节省了工作人员寻找车辆的人力成本,岂不美哉(

当然,我只是来吃个早饭的,吃完早饭我就骑走了,在骑出禁停区并锁车的同时,收到了管理费退还短信。

0000 0

不过,这个5块钱的车辆管理费是退还到余额的,并不是退到支付方式的账号上的。

当作自己吃了两份早餐了,哼(吃个早饭比吃午饭还贵

【碎碎念】是时候重新出发了

最近的考试很快就结束了,自我感觉这次考得不错,然而当我拿成绩比对了一下录取的分数线以后,才发现相差了十分大的距离,而这次考试还算是我考得最好的一次,就这样,感觉有点小失落。成天说学写代码写代码,但是学了一段时间,也没学得像个模样。再加上冲刺这段时间感觉学这玩意儿没啥用,况且自己编程压根可以说算是没有基础,在冲刺阶段补这玩意儿没啥意义,还不如努力一把看能不能冲上前去比较好。于是,打算重拾一些东西,同时也暂时放下一些东西,重新出发,寻找最真实的自己

虽然说努力并不是做出来给人看的,但留一个放下的足迹吧。
努力后,再见。

Guoguo

由于部分原因,可能是觉得原来的域名太长,也有可能是因为自己真的是穷,穷到已经没法继续续费 .com 域名,经过了持久的简单的思考以后,现决定将原域名 imguoguo.com 废弃,更换为 qwq.trade ,同时将服务器迁移,原域名在域名到期前将 301 跳转到该域名上。
同时上 HSTS 坑死接盘侠
各位加了友链的 dalao 们可以将友链域名换为 https://qwq.trade/ ,其他东西应该没啥变化
就酱

Guoguo 2018-06-20 2个评论

【Resilio Sync】一款实用而又好用的多平台同步软件

像我这种学生党经常需要偷偷摸摸地同步老师的课件,对于有收拾强迫症的我就会选择在课室电脑某个地方开个文件夹分好类,有时老师会修改一些课件,这样插 U 盘拷贼鸡儿麻烦,要我重新全部拷一遍。反正课室电脑有网络,怎样方便而又快捷地在不同地方同步文件?Resilio Sync不失为一个不错的选择。

阅读全文→

【碎碎念】从 Typecho 迁移到了 WordPress

终于还是忍不住 WordPress 丰富的插件,回到 WordPress 玩玩

别过一会儿没忍住又回到了 Typecho 就行(逃

【搞机篇】一加 3T 上更好用的“氢”ROM

自从入手一加 3T 以后,感觉手机的充电频率变得越来越高,有时候甚至一天需要进行三四次充电。如下图就是我以前用氢氧官方系统时的耗电情况。不仅崩得不行,还莫名其妙的卡。

阅读全文→

【碎碎念】服务器滚挂了

之前 618 和朋友买了一台 Virmach 的服务器,想都没想直接就上 Arch Linux 了(
昨天服务器给滚上最新版,然而好像 OVZ 和最新的 Arch 某个玩意儿不兼容来着,然后服务器就挂了,Bot 和 API 啥的东西全部丢失了(对的而且还没有任何备份,康了一下之前的文章感觉莫名的讽刺),开了个工单联系 Virmach 的客服。得知备份需要10美元/次,想想还是算了,就这样把东西推翻重写也挺好。
(好像也好久没更新博客了,以后经常随便水几篇)(逃