调用腾讯云滑块验证码(vue框架+web前端接入)

1,771 阅读2分钟

调用腾讯云滑块验证码(vue框架+web前端接入)

官方文档:007.qq.com/product.htm…

前提:企业已购买改权限并配置好信息(参考楼上地址步骤)

滑块验证码说明:

抗破解性强,交互简单,用户轻轻一滑即可快速完成验证。(这里可做多语言适配)

中文

image-20220524105458891.png

英文

image-20220524154101510.png

前端接入步骤:

第一步:

条件:接入验证码前,进入图形验证 页完成新建验证。可在验证列表查看 验证码接入所需的 CaptchaAppId 以及 AppSecretKey。

img

第二步

在index.html中的head中引入相关.js文件

// 加载滑块验证
<script src="https://ssl.captcha.qq.com/TCaptcha.js" type = 'text/javascript'></script>

或者在App.vue文件中

// 加载滑块验证
let script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'https://ssl.captcha.qq.com/TCaptcha.js';
document.getElementsByTagName('head')[0].appendChild(script);
第三步

dom结构

<div ref="captcha1" class="outter">
    <span @click="handleSlide($event)" class="inner">点我就可以出现滑块验证</span>
</div>

样式

image-20220524153804699.png

第四步

js

methods: {
    handleSlide(e) {
	try {
            //这里书写调用滑块前逻辑
            let dom = this.$refs.captcha1;
            //多语言适配(作为参考)
            let userLanguage = this.$store.state.language;
            userLanguage = userLanguage.indexOf('zh') != -1 ? userLanguage : userLanguage.split('-')[0];
            // 滑块插件实例
            this.captcha = new TencentCaptcha(
                    dom,
                    '204099xxx',//这个是在配置时生成的
                    this.myCallBack,
                    { userLanguage }
                    // { bizState: '自定义透传参数' }
		);
         } catch (error) {
            // 滑块验证调用失败
            // 这里可以写调用失败逻辑
            console.log('调用失败');
         }
      },
    myCallBack(res) {
	let { ret } = res;
	//ret==0表示调用成功
	if (ret == 0) {
            //这里书写调用成功逻辑
            let { randstr, ticket, ret } = res;
            console.log('randstr--' + randstr + '\n', 'ticket--' + ticket + '\n', 'ret--' + ret + '\n', '回调成功相关参数');
	}
    },
}

实例滑块时的参数说明:

new TencentCaptcha(element, CaptchaAppId, callback, options);
// element	HTMLElement	需要绑定click事件的元素
// CaptchaAppId	String	验证码应用 ID
// callback	Function	回调函数
// options	Object	更多配置参数, 请参见 配置参数

回调中的res参数说明:

// ret         Int       验证结果,0:验证成功。2:用户主动关闭验证码。
// ticket      String    验证成功的票据,当且仅当 ret = 0 时 ticket 有值。
// CaptchaAppId       String    验证码应用ID。
// bizState    Any       自定义透传参数。
// randstr     String    本次验证的随机串,请求后台接口时需带上。
/* 
res(验证成功) = {ret: 0, ticket: "String", randstr: "String"}
res(客户端出现异常错误 仍返回可用票据) = {ret: 0, ticket: "String", randstr: "String",errorCode: Number, errorMessage: "String"}
res(用户主动关闭验证码)= {ret: 2}
*/

一个成功调用滑块返回的部分参数:

//randstr-----@wFQ
//ticket-----t03RkzgnDZes3SCWPl23I1YFbinjp0uN7WoJkvNeI0rKs5u_bmid0VTCxoF7YUDq1Vu4fEMjbGuFLEhi3Zvu9nEX6-HvCdVOlMnfLRUyrULJpXptBjPqHkGeA**
//ret-----0 
//回调成功相关参数
第五步

点击,即可成功调起

划重点,划重点!!!!

这里有个坑:

点击触发这个事件的dom结构和你传入实例的dom结构一定不要是同一个(应像本文档这样写结构)

不然你点击第一次的时候并不会触发这个滑块验证,第二次第三次....才会触发