当前位置: 首页 > article >正文

VUE前端实现天爱滑块验证码--详细教程

第一步:

Git地址:tianai-captcha-demo: 滑块验证码demo

找到目录 src/main/resources/static,拷贝 static 并改名为 tac 即可。

第二步:

将改为 tac 的文件,放进项目根目录中,如下图:

第三步:

点击链接:https://minio.tianai.cloud/public/static/captcha/js/load.min.js

将里面的内容拷贝下来,创建 load.min.js 文件 在 tac/js/load.min.js。

第四步:

会报初始化的错误:初始化tac失败 referenceerror: tac is not defined

解决方法:

1、下载 rollup-plugin-copy 依赖:yarn add rollup-plugin-copy --save-dev  

我这边用的是yarn,npm的话是:npm install rollup-plugin-copy --save-dev  

成功如下图:

2、在 vite.config.ts 文件中,在build中加入以下配置:

import copyPlugin from 'rollup-plugin-copy';
export default defineConfig(({ mode }) =>{
  return {
    build: {
      rollupOptions: {
        plugins: [
          copyPlugin({
            targets: [{ src: 'tac/*', dest: 'dist/tac' }],
            hook: 'writeBundle' //防止打包后,tac文件丢失
          }),
        ],
      },
      // outDir: 'dist',
      // assetsDir: 'assets',
    },
  }
})

第五步:

在使用到验证码的 vue 文件中,后端需要给俩个接口:生成验证码接口 和 校验验证码接口

const checkVerificationCode = () => {
    const apiBaseUrl = import.meta.env.VITE_API_BASE_URL;
    const baseUrl = `${apiBaseUrl}`;

    // config 对象为TAC验证码的一些配置和验证的回调
    const config = {
         //生成接口
        requestCaptchaDataUrl: `${baseUrl}/getReCaptchaImageV2.json`,
        // 验证接口
        validCaptchaUrl: `${baseUrl}/getReCaptchaImageV3.json`,
        bindEl: '#captcha-box',
        // 验证成功回调函数(必选项,必须配置)
        validSuccess: (res, c, tac) => {
            // 销毁验证码服务
            tac.destroyWindow();
            // console.log("验证成功,后端返回的数据为", res);
        },
        // 验证失败的回调函数(可忽略,如果不自定义 validFail 方法时,会使用默认的)
        validFail: (res, c, tac) => {
            console.log('验证码验证失败回调...', res, c, tac);
            // 验证失败后重新拉取验证码
            tac.reloadCaptcha();
        },
        // 刷新按钮回调事件
        btnRefreshFun: (el, tac) => {
            console.log('刷新按钮触发事件...');
            tac.reloadCaptcha();
        },
        // 关闭按钮回调事件
        btnCloseFun: (el, tac) => {
            console.log('关闭按钮触发事件...');
            tac.destroyWindow();
        }
    };

    // 一些样式配置, 可不传
    const style = {
        // 按钮样式
        btnUrl: "https://minio.tianai.cloud/public/captcha-btn/btn3.png",
        // 背景样式
        bgUrl: "https://minio.tianai.cloud/public/captcha-btn/btn3-bg.jpg",
        // logo地址
        logoUrl: "@/assets/logo.png",
        // 滑动边框样式
        moveTrackMaskBgColor: "#f7b645",
        moveTrackMaskBorderColor: "#ef9c0d"
    }
    // 参数1 为 tac文件是目录地址, 目录里包含 tac的js和css等文件
    // 参数2 为 tac验证码相关配置
    // 参数3 为 tac窗口一些样式配置
    window.initTAC('./tac', config, style).then((tac) => {
        tac.init(); // 调用init则显示验证码
    }).catch((e) => {
        console.log('初始化tac失败', e);
    });
};

注意点:

接口是拼接本地配置好的后端地址

到这里基本上就实现了滑块验证功能,然后在各个回调中做处理。

后端生成接口返回的数据及格式

重点:

在 tac.min.js 源码文件 中 requestCaptchaData 这个方法是调用后端生成验证码的接口

参数要自己更改下,如下:


http://www.kler.cn/a/415409.html

相关文章:

  • 数据结构--树二叉树顺序结构存储的二叉树(堆)
  • RHCE作业五-shell脚本
  • 【AIGC】大模型面试高频考点-数据清洗篇
  • 添加字符(暴力模拟)
  • 《深入理解经典广度优先遍历算法》
  • 微知-arp如何删除所有表项?(arp -d; ip neighbor delete 192.168.0.100)
  • 理解Parquet文件和Arrow格式:从Hugging Face数据集的角度出发
  • 挑战用React封装100个组件【001】
  • 设计模式面试大全:说一下单例模式,及其应用场景?
  • Microsoft Fabric - 尝试一下Delta Table
  • 【VUE3】npm : 无法加载文件 D:\Program\nodejs\node_global\npm.ps1,因为在此系统上禁止运行脚本。
  • 设计模式之抽象工厂 C# 范例
  • 力扣637. 二叉树的层平均值
  • 公开整理-中国省级人工智能专利统计数据(2010-2022年)
  • Android Studio安装TalkX AI编程助手
  • 单例模式(Singleton Pattern):深入解析与应用场景
  • ASUS/华硕天选5Pro酷睿版 FX607J 原厂Win11 23H2系统 工厂文件 带ASUS Recovery恢复
  • 使用Apache HttpClient发起一个GET HTTP请求
  • C++(模板)
  • 新增工作台模块,任务中心支持一键重跑,MeterSphere开源持续测试工具v3.5版本发布
  • 线段树讲解
  • 宠物领养技术:SpringBoot框架应用
  • 一个简洁的ajax注册登录找回密码切换的前端页面
  • 原生js上传图片
  • Spring 返回JSON
  • Rust个人认为将抢占C和C++市场,逐渐成为主流的开发语言