最近在用VUE做个简单的用户系统,登录注册需要验证码,想找个那种拖动的,找geetest居然已经不面向小客户了(或者说只有收费套餐)。
腾讯防水墙的验证码免费使用,有2000/小时的免费额度,对于小网站完全足够了,阿里应该也有,我看discuz有插件直接能用,但没找到入口
腾讯的在这,和腾讯云无关:https://007.qq.com/captcha/#/ 申请api很简单,QQ登录,创建应用,ID和secretkey就出来了,直接在文档里展示,赞一个。
vue有人做了封装了geetest+腾讯验证码的插件,但实现不了我想要的逻辑,而且似乎把简单的东西复杂化了,遂放弃自己接。
我的应用的需求是:
用户点击按钮后,先执行我的验证逻辑,验证逻辑通过后再执行验证码逻辑,插件实现了一个vue组件进行绑定验证过程,但这样就没法实现我的需求了。而且我一开始找插件是因为以为腾讯提供的JS没有带UI,后来发现其实已经自带UI,一个函数就可以调起自适应的验证码界面,很方便。
接入方法
那么进入记录的正题
1.引入JS
在VUE的index.html头部加入以下内容即可
1 |
<script src="https://ssl.captcha.qq.com/TCaptcha.js"></script> |
2.调起腾讯验证码
有两种方式可以调起,第一种采用dom元素加data属性
1 2 3 4 |
<button id="TencentCaptcha" data-appid="你的APPID" data-cbfn="callback" >验证</button> |
这样这个元素被点击的时候就会触发了(也就实现了前面说的第三方插件的功能了,所以不知道那个插件有啥意义..)
第二种方式是我使用的,JS内写逻辑:
1 2 3 4 5 6 7 8 9 10 |
new TencentCaptcha('腾讯验证码APPID', (rsp)=>{ if(rsp.ret===0){ //我的验证码通过后的逻辑写在此 }else{ this.$vux.toast.show({ text: '请完成滑块验证', type: 'warn' }) } },{}); |
这种方式可以完成我的需求,在验证表单数据的逻辑通过后调用此逻辑,此逻辑内再写表单提交请求,就可以了
3.腾讯验证码的一些设置
今天又看了下腾讯验证码的后台,感觉功能做的挺齐全也很实用。作为一个免费产品非常不错了:
可以看数据:
可以轻微定义界面(本身界面不会有广告):
可以设置体验更好的验证模式等: