在Vue项目中引入腾讯验证码服务的教程


Posted in Javascript onApril 03, 2018

什么是腾讯验证码?它长这个样子……:point_down:

在Vue项目中引入腾讯验证码服务的教程 

最近公司项目要求引入腾讯云验证,要求是这样的: 为了防止别人恶意刷短信验证码,当用户短时间内多次获取验证码的时候,需要调用腾讯验证码,验证成功后会继续自动发送验证码 ,刚开始的我听的一脸蒙蔽,网上搜索也没有多少相关的文章,然而现在我接通啦,发现是很简单点事(或许就是因为太简单了所以没有人写2333…)

不多BB,开始吧!

先看文档的接口调用流程:

在Vue项目中引入腾讯验证码服务的教程 

(文档地址: cloud.tencent.com/document/pr… )

总共分成几个小步骤:

  1. 后台去腾讯云获取一个JS地址;
  2. 后台通过接口传给前端;
  3. 前端依据JS地址去加载验证码;
  4. 验证成功后会得到一个ticket票据(就是一堆字符串),将其再传给后台;
  5. 后台验证ticket,如果通过,你就会收到短信(或邮件)验证码了。

后台的事不去管它,那我们前端都需要做什么呢?

首先在需要引入腾讯验证码的.vue组件内加入一个标签:point_down::

<div id="TCaptcha" style="width:300px;height:40px;" ></div>

然后当你频繁多次调用发送短信的接口,直到触发了需要调用腾讯验证码时( 这个判断是后台告诉你的 ,比如我们项目中接口传参的JSON中有个isShow的变量,如果等于1则要触发腾讯云验证了,默认状态下是0,就是不需要腾讯验证。具体情况问你们的后台去,手动滑稽)

在Vue项目中引入腾讯验证码服务的教程 

上图是我们项目中实际的接口回调,可以看到回调中有个 Js地址 和 businessId ;

这个Js地址就是你去获取云验证的方式,你需要写一个方法,把这个Js动态添加到body标签内:point_down::

在Vue项目中引入腾讯验证码服务的教程

参数src是调用获取验证码接口返回数据时,将Js地址传过来。

capInit这个函数是当你将Js引入进去后才会有的,否则报错,所以设置一个延迟(代码比较简陋,可以用promise)。

然后这个callback回调函数就是 用户验证之后,会调用该函数,传入json格式验证参数。:point_down: 

//回调函数:验证码页面关闭时回调
cbfn(res) {
 if (res.ret == 0) {
  // 用户验证成功,获取到ticket,然后你需要将这个ticket和之前的businessId一起传给后台
  // 若后台验证成功,用户就可以收到验证码了,无需你再做其他操作
  alert(res.ticket);
  capDestroy()
 }
 else {
  //用户关闭验证码页面,没有验证
  capDestroy() //销毁之前创建的script标签
 }
}

重复一遍:用户验证成功,获取到ticket,然后你需要将这个ticket和之前的businessId一起传给后台。若后台验证成功,用户就可以收到验证码了,无需你再做其他操作

最后再说(复制)一下 capInit(iframe_div, options) 这个函数,options是一个Json对象,可以设置多个参数。:point_down:

1. iframe_div(必填):嵌入验证码 iframe 的元素。

2. options: {callback:xxx,showheader:xxx, themeColor:xxxxxx,type:"embed"},json 格式对象

callback: 验证码页面关闭回调函数。用户验证之后,会调用该函数,传入json格式验证参数。

{ret:xxx,ticket:"xxx"}

ret=0 表示用户验证完成,业务可以校验 ticket;

ret=1 表示用户未验证验证码,此时没有 ticket 参数。

参数 ticket 需要提交给业务后台,具体填哪个字段参考后面后台 server 开发部分。

themeColor :设置页面的主题色彩,值为 16 进制色彩,比如 ff572d。设置后页面里的按钮和图标会变成设置的颜色

showHeader
:显示验证码页面的 header (返回和帮助,只对手机页面有效)

false:不显示

type :PC 端可选选项,配置验证码的样式。具体样式表现可以查看验证码官网

"point":触发式(默认)

"embed":嵌入式

"popup":弹窗式

pos:设置弹框验证码的位置属性,该参数只对 PC 弹框验证码有效

absolute: 绝对定位

fixed:相对于浏览器窗口的绝对定位

static:静态定位

relative:相对定位

keepOpen:设置验证通过页面属性

false:验证通过刷新(默认)

lang:设置验证码语言类型

简体中文:2052(默认)

繁体中文:1028

英文:1033

要记得及时调用capDestroy()来销毁你创建的script标签,否则就会出现很多个script标签……

文档上说的是在调用capInit()之前调用capDestroy(),但是我试了一下,不好使,最后放在了回调里,无论验证成功还是用户没有验证,关闭了验证弹窗,都调用一下capDestroy()。

总结

以上所述是小编给大家介绍的在Vue项目中引入腾讯验证码服务的教程,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
从零学JS之你需要了解的几本书
May 19 Javascript
如何在Linux上安装Node.js
Apr 01 Javascript
Javascript使用uploadify来实现多文件上传
Nov 16 Javascript
JavaScript实现拖拽元素对齐到网格(每次移动固定距离)
Nov 30 Javascript
JavaScript获取select中text值的方法
Feb 13 Javascript
js实现3D图片环展示效果
Mar 09 Javascript
Vue.js中数据绑定的语法教程
Jun 02 Javascript
微信小程序如何获取用户手机号
Jan 26 Javascript
微信小程序页面调用自定义组件内的事件详解
Sep 12 Javascript
京东优选小程序的实现代码示例
Feb 25 Javascript
js Math数学简单使用操作示例
Mar 13 Javascript
vue中如何自定义右键菜单详解
Dec 08 Vue.js
详解如何用babel转换es6的class语法
Apr 03 #Javascript
为vue-router懒加载时下载js的过程中添加loading提示避免无响应问题
Apr 03 #Javascript
新版vue-cli模板下本地开发环境使用node服务器跨域的方法
Apr 03 #Javascript
使用react实现手机号的数据同步显示功能的示例代码
Apr 03 #Javascript
JS遍历DOM文档树的方法实例详解
Apr 03 #Javascript
JavaScript同源策略和跨域访问实例详解
Apr 03 #Javascript
vue 组件中slot插口的具体用法
Apr 03 #Javascript
You might like
PHP 手机归属地查询 api
2010/02/08 PHP
php5.4以下版本json不支持不转义内容中文的解决方法
2015/01/13 PHP
详解Yii2 定制表单输入字段的标签和样式
2017/01/04 PHP
php实现往pdf中加数字签名操作示例【附源码下载】
2018/08/07 PHP
如何让页面在打开时自动刷新一次让图片全部显示
2012/12/17 Javascript
在javascript中执行任意html代码的方法示例解读
2013/12/25 Javascript
js查找某元素中的所有图片地址的方法
2014/01/16 Javascript
jQuery实现的输入框选择时间插件用法实例
2015/02/28 Javascript
js 获取元素在页面上的偏移量的方法汇总
2015/04/13 Javascript
jQuery使用animate创建动画用法实例
2015/08/07 Javascript
jQuery hover事件简单实现同时绑定2个方法
2016/06/07 Javascript
JS中使用mailto实现将用户在网页中输入的内容传递到本地邮件客户端
2016/10/08 Javascript
JQuery validate 验证一个单独的表单元素实例
2017/02/17 Javascript
详解angular中的作用域及继承
2017/05/31 Javascript
判断iOS、Android以及PC端的示例代码
2018/11/15 Javascript
Node.js 的 GC 机制详解
2019/06/03 Javascript
Python3中的2to3转换工具使用示例
2015/06/12 Python
利用Python获取赶集网招聘信息前篇
2016/04/18 Python
pycharm下打开、执行并调试scrapy爬虫程序的方法
2017/11/29 Python
python生成圆形图片的方法
2020/03/25 Python
Python 列表去重去除空字符的例子
2019/07/20 Python
Django admin.py 在修改/添加表单界面显示额外字段的方法
2019/08/22 Python
Pytorch中Tensor与各种图像格式的相互转化详解
2019/12/26 Python
css3 利用transform打造走动的2D时钟
2020/10/20 HTML / CSS
HTML5拖放API实现拖放排序的实例代码
2017/05/11 HTML / CSS
Sunglasses Shop荷兰站:英国最大的太阳镜独立在线零售商和供应商
2017/01/08 全球购物
Beach Bunny Swimwear官网:设计师泳装和性感比基尼
2019/03/13 全球购物
马来西亚在线健康商店:Medipal Malaysia
2020/04/13 全球购物
大学总结自我鉴定
2014/01/18 职场文书
中学生获奖感言
2014/02/04 职场文书
节能宣传周活动总结
2014/05/08 职场文书
校园环保建议书
2014/05/14 职场文书
教师党员个人剖析材料
2014/09/29 职场文书
个人四风问题整改措施思想汇报
2014/10/04 职场文书
税务干部个人整改措施思想汇报
2014/10/10 职场文书
劳动争议仲裁代理词
2015/05/25 职场文书