一个贼丝滑的 Vue 2 扩展组件,开源且免费

简介: 一个贼丝滑的 Vue 2 扩展组件,开源且免费

今天我要向大家介绍一个非常有趣且实用的开源项目——vue-monoplasty-slide-verify。它是一个基于 Vue 2 的滑动式验证码组件,开源且免费。

这个滑动式验证码不仅丝滑流畅,还能有效防止恶意注册和自动化攻击。😎

我们都知道,验证码是确保用户操作安全的重要手段。然而,传统的字符验证码对用户体验不太友好,输入麻烦且容易出错。而滑动式验证码通过拖动滑块完成验证,既简单又有趣。现在,让我们一起来看看这个神奇的项目吧!

项目特点

1. 简单易用

vue-monoplasty-slide-verify 通过简单的 API 接口,让开发者能够快速集成滑动式验证码。

2. 用户体验佳

滑动式验证码相比传统的字符验证码,操作简单,用户体验更佳。

3. 安全可靠

滑动式验证码不仅能有效防止恶意注册和自动化攻击,还能大大减少误判率。

4. 开源免费

项目完全开源,代码托管在 Gitee 上,任何人都可以免费使用和修改,非常适合各类网站和应用。

安装使用

接下来,我将详细介绍如何在你的 Vue 2 项目中集成 vue-monoplasty-slide-verify

1. 安装依赖

在你的 Vue 项目中安装 vue-monoplasty-slide-verify 依赖:

npm install --save vue-monoplasty-slide-verify

2. 引入并注册组件

在你的项目中引入并注册 vue-monoplasty-slide-verify 组件:

import Vue from 'vue';
import SlideVerify from 'vue-monoplasty-slide-verify';
Vue.use(SlideVerify);

3. 使用滑动式验证码组件

在你的组件中使用滑动式验证码:

<template>
  <div id="app">
    <slide-verify
      :l="42"
      :r="10"
      :w="310"
      :h="155"
      slider-text="向右滑动"
      @success="onSuccess"
      @fail="onFail"
      @refresh="onRefresh">
    </slide-verify>
    <div>{{ msg }}</div>
  </div>
</template>
<script>
export default {
  name: 'App',
  data() {
    return {
      msg: '',
    };
  },
  methods: {
    onSuccess() {
      this.msg = 'login success';
    },
    onFail() {
      this.msg = '';
    },
    onRefresh() {
      this.msg = '';
    }
  }
};
</script>
<style>
#app {
  text-align: center;
  margin-top: 50px;
}
</style>

这样,一个简单的滑动式验证码组件就集成完成了!当用户成功滑动滑块时,会触发 success 事件;失败时则会触发 fail 事件。

深入理解滑动式验证码

验证原理

滑动式验证码的验证原理是通过用户拖动滑块,将缺口与背景图的缺失部分对齐。系统会在后台进行验证,确保滑块的位置与预设位置相匹配,从而判断是否通过验证。

自定义配置

vue-monoplasty-slide-verify 提供了丰富的自定义配置选项,你可以根据实际需求进行调整。例如,可以自定义滑块样式、背景图片、验证成功后的处理逻辑等。以下是一些常见的配置选项:

<slide-verify
  :width="320"
  :height="160"
  :l="42"
  :r="10"
  :img="require('@/assets/verify-bg.jpg')"
  @success="onSuccess"
  @fail="onFail">
</slide-verify>
  • width:滑动验证组件的宽度,默认为 320。
  • height:滑动验证组件的高度,默认为 160。
  • l:滑块的边长,默认为 42。
  • r:滑块的半径,默认为 10。
  • img:背景图片路径。

实际应用场景

滑动式验证码可以应用在很多场景中,比如用户注册、登录、找回密码等操作中。通过引入滑动式验证码,可以有效防止恶意注册和自动化攻击,提升网站的安全性。

示例代码

以下是一个完整的示例,展示了如何在父组件中使用滑动式验证码,并添加各种回调函数:

<template>
  <div id="app">
    <slide-verify
      ref="slideblock"
      @again="onAgain"
      @fulfilled="onFulfilled"
      @success="onSuccess"
      @fail="onFail"
      @refresh="onRefresh"
      :slider-text="text"
      :accuracy="accuracy">
    </slide-verify>
    <button @click="handleClick">在父组件可以点我刷新哦</button>
    <div>{{ msg }}</div>
  </div>
</template>
<script>
export default {
  name: 'App',
  data() {
    return {
      msg: '',
      text: '向右滑动->',
      accuracy: 1, // 精确度小,可允许的误差范围小;为1时,则表示滑块要与凹槽完全重叠,才能验证成功。默认值为5
    };
  },
  methods: {
    onSuccess(times) {
      console.log('验证通过,耗时 ' + times + ' 毫秒');
      this.msg = `login success, 耗时 ${(times / 1000).toFixed(1)}s`;
    },
    onFail() {
      console.log('验证不通过');
      this.msg = '';
    },
    onRefresh() {
      console.log('点击了刷新小图标');
      this.msg = '';
    },
    onFulfilled() {
      console.log('刷新成功啦!');
    },
    onAgain() {
      console.log('检测到非人为操作的哦!');
      this.msg = 'try again';
      // 刷新
      this.$refs.slideblock.reset();
    },
    handleClick() {
      this.$refs.slideblock.reset();
    },
  },
};
</script>
<style>
#app {
  text-align: center;
  margin-top: 50px;
}
</style>

参数说明

Param Type Describe Version
l Number block length
r Number block circle radius
w Number canvas width
h Number canvas height
sliderText String Slide filled right 1.0.5
imgs Array 背景图数组,默认值 [] 1.1.0
accuracy Number 滑动验证的误差范围,默认值 5 1.1.1
show Boolean 是否显示刷新按钮,默认值 true 1.1.1

回调函数说明

Event Type Describe Version
success Function success callback 返回时间参数,单位为毫秒
fail Function fail callback
refresh Function 点击刷新按钮后的回调函数
again Function 检测到非人为操作滑动时触发的回调函数 1.1.1
fulfilled Function 刷新成功之后的回调函数 1.1.1

总结

如果你正在寻找一个用户友好的验证码解决方案,不妨试试 vue-monoplasty-slide-verify相信它会为你的开发工作带来极大的提升和帮助。

相关文章
|
前端开发 数据可视化 JavaScript
前端图形学实战: 从零开发一款轻量级滑动验证码组件(vue3 + vite版)
前端图形学实战: 从零开发一款轻量级滑动验证码组件(vue3 + vite版)
1154 0
|
移动开发 前端开发 应用服务中间件
解决前端H5调用后端接口出现302问题总结
解决前端H5调用后端接口出现302问题总结
9128 0
解决前端H5调用后端接口出现302问题总结
|
JavaScript
|
JavaScript
vue中使用@scroll不生效的问题
vue中使用@scroll不生效的问题
1314 59
|
移动开发 资源调度 JavaScript
Vue2使用触摸滑动插件(Swiper)
这篇文章介绍了在Vue 3框架中如何使用Swiper插件来创建不同类型的触摸滑动组件,包括轮播图、淡入淡出效果和走马灯效果,并提供了详细的配置选项和使用示例。
963 1
Vue2使用触摸滑动插件(Swiper)
|
数据格式
使用小技巧实现el-table组件的合并行功能,ElementUI和ElementPlus都适用
本文介绍了在ElementUI和ElementPlus中使用`el-table`组件实现合并行功能的技巧,包括多列合并和单列合并的方法,并提供了相应的示例代码和运行效果。
9134 1
使用小技巧实现el-table组件的合并行功能,ElementUI和ElementPlus都适用
|
11月前
|
JavaScript 数据可视化
vue-cli学习二:vue-cli3版本 创建vue项目后,Runtime-Compiler和Runtime-only两个模式详解;vue项目管理器;配置文件的配置在哪,以及如何配置
这篇文章详细介绍了Vue CLI 3版本创建项目时的Runtime-Compiler和Runtime-only两种模式的区别、Vue程序的运行过程、render函数的使用、eslint的关闭方法,以及Vue CLI 2和3版本配置文件的不同和脚手架3版本创建项目的配置文件配置方法。
737 3
vue-cli学习二:vue-cli3版本 创建vue项目后,Runtime-Compiler和Runtime-only两个模式详解;vue项目管理器;配置文件的配置在哪,以及如何配置
|
移动开发 资源调度 JavaScript
Vue移动端网页(H5)预览pdf文件(pdfh5和vue-pdf)
这篇文章介绍了在Vue移动端网页中使用`pdfh5`和`vue-pdf`两个插件来实现PDF文件的预览,包括滚动查看、缩放、添加水印、分页加载、跳转指定页数等功能。
8175 1
Vue移动端网页(H5)预览pdf文件(pdfh5和vue-pdf)
|
编解码 JavaScript
【vue2】vue2 适配pc端,解决浏览器缩放问题,解决电脑显示设置缩放、分辨率问题
【vue2】vue2 适配pc端,解决浏览器缩放问题,解决电脑显示设置缩放、分辨率问题
1617 1
|
JavaScript
vue 滑动拼图验证
vue 滑动拼图验证
221 1
vue 滑动拼图验证