VUE接入腾讯云验证码

腾讯云验证码-图形验证

目的:该模型能够准确识别可信、可疑和恶意用户,并提供不同的验证体验,令有效验证通过更轻松,机器作恶更困难。防止软件外围发短信被恶意攻击。

前提:接入验证码前,需要先在 验证码控制台 中注册 AppID 和 AppSecret。

提示:可以免费领取20000次验证,足够平时的测试使用

 

准备工作完成之后就可以进入下面的引入阶段了。

第一步:全局引入js

  <script src="https://ssl.captcha.qq.com/TCaptcha.js"></script>

 第二步:生成滑块验证码对象

 let captchaId = '******'; //腾讯滑块验证码appid
            //生成一个滑块验证码对象
            const _this = this;//此处处理是因为调用滑块验证码校验方法失效
            var captcha = new TencentCaptcha(captchaId,
              function (res) {
                console.log(res)
                _this.handleLoginMe(res);//图形验证码校验
              });
            // 滑块显示
            captcha.show();

第三步:滑块验证码校验

校验地址腾讯提供:前往

    async phonecodePPTAction() {
        let ckParams = this.ctx.ckParams,
            reqBody = this.ctx.post(),
            PostData = utils.getBody(reqBody, ['USERLOGINNAME','TICKET','RANDSTR']);
        let result = null;
        const CaptchaClient = tencentcloud.captcha.v20190722.Client;
        const models = tencentcloud.captcha.v20190722.Models;

        const Credential = tencentcloud.common.Credential;
        const ClientProfile = tencentcloud.common.ClientProfile;
        const HttpProfile = tencentcloud.common.HttpProfile;

        let cred = new Credential("【SecretId】", "【SecretKey】");
        let httpProfile = new HttpProfile();
        httpProfile.endpoint = "captcha.tencentcloudapi.com";
        let clientProfile = new ClientProfile();
        clientProfile.httpProfile = httpProfile;
        let client = new CaptchaClient(cred, "ap-beijing", clientProfile);

        let req = new models.DescribeCaptchaResultRequest();

        let params = '{\"CaptchaType\":9,\"Ticket\":\"'+PostData.TICKET+'\",\"UserIp\":\"127.0.0.1\",\"Randstr\":\"'+PostData.RANDSTR+'\",\"CaptchaAppId\":2067362599【】,\"AppSecretKey\":\"【】\"}'
        req.from_json_string(params);
        try {
            const result = await this.reqTCaptcha(client, req)
            if(result.CaptchaCode=='1'){
                return this.json({Result: 'Success', resultMsg: '图形验证码校验成功'})
            }else {
                return this.json({Result: 'Fail', resultMsg: '图形验证码校验失败'})
            }
        } catch (e) {
            this.status = 500;
            return this.fail(500, e.message || '内部服务错误')
        }
    }
    reqTCaptcha(client, req) {
        return new Promise((resolve, reject) => {
            client.DescribeCaptchaResult(req, function(errMsg, response) {
                if (errMsg) {
                    reject(errMsg)
                }
                resolve(response)
            });
        })
    }

 基本上获取验证码到验证码校验就完成了整个流程。效果图如下

 

Vue2项目中接入腾讯云验证码,通常需要使用腾讯云提供的API服务和JavaScript插件。以下是大致步骤: 1. 注册腾讯云账号并创建验证码服务:首先,你需要在腾讯云控制台注册并登录,然后在云产品中选择“智能安全”->“验证码”,创建一个验证码服务。 2. 获取API密钥和URL:在设置好验证码服务后,会生成一个API密钥和一个请求验证码的URL。你需要保存这两个信息以便后续使用。 3. 安装插件:可以使用`vue-axios`这样的库来方便地处理HTTP请求。在你的Vue项目中安装它: ```bash npm install axios ``` 4. 编码验证组件:在Vue文件中创建一个验证码组件,例如使用`v-captcha`这个库来显示和处理验证码图片请求: ```html <template> <div class="captcha"> <img :src="captchaUrl" alt="验证码" @error="handleError"> <button @click="generateNewCode">获取新验证码</button> <input type="text" v-model="inputCode" placeholder="请输入验证码"> <button @click="checkCode">提交</button> </div> </template> <script> import axios from 'axios'; export default { data() { return { captchaUrl: '', inputCode: '', apiKey: 'your_api_key', // ...其他配置 }; }, methods: { generateNewCode() { axios.post('https://your_captcha_url', { api_key: this.apiKey }).then(response => { this.captchaUrl = response.data.url; }); }, checkCode() { axios.post('https://your_verify_url', { code: this.inputCode, api_key: this.apiKey }) .then(response => { if (response.data.status === 'success') { console.log('验证码校验成功'); } else { console.error('验证码错误'); } }) .catch(error => console.error('验证码验证失败:', error)); }, handleError(e) { console.error('验证码加载失败', e); } }, }; </script> ``` 5. 配置:将获取到的API URL、API密钥和验证码容器元素替换到相应的地方。 记得根据腾讯云文档更新URL、API密钥以及参数格式。同时,为了用户体验考虑,可能还需要处理验证码过期的情况,并在实际项目中添加适当的状态管理或Vuex。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大小先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值