一个贼丝滑的 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相信它会为你的开发工作带来极大的提升和帮助。

相关文章
|
6月前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的怀旧唱片售卖系统附带文章和源代码设计说明文档ppt
基于ssm+vue.js+uniapp小程序的怀旧唱片售卖系统附带文章和源代码设计说明文档ppt
33 3
|
6月前
|
前端开发
React 仿淘宝图片放大镜功能
React 仿淘宝图片放大镜功能
120 0
|
6月前
|
JavaScript Java 测试技术
微信小程序研学自习室选座与门禁系统+springboot+vue.js附带文章和源代码设计说明文档ppt
微信小程序研学自习室选座与门禁系统+springboot+vue.js附带文章和源代码设计说明文档ppt
38 2
|
前端开发
前端换肤,聊一聊主题切换那些事
前端换肤,聊一聊主题切换那些事
183 0
|
前端开发 JavaScript Java
种草 Vue3 中几个好玩的插件和配置
种草 Vue3 中几个好玩的插件和配置
|
JavaScript 前端开发
哈~这个vue3组件库中的组件真的是超多,不来试试吗?
随着vue在国内的越来越火,也应运而生了很多的优秀的UI组件库。都很有特点,也比较好用。如大家都能耳熟能详的 element-ui 和 Ant Design Vue都是非常不错的。可惜的是 element-ui 不再维护升级vue3了,不过它的继任者 element-plus确实正在如火如荼的开发着,支持vue3。喜欢 element-ui的一定不要错过它。
哈~这个vue3组件库中的组件真的是超多,不来试试吗?
|
JavaScript 前端开发 程序员
抱歉,久等了,基于Antd-Vue的VueAdminWorkA框架正式和大家开源见面了
抱歉,久等了,基于Antd-Vue的VueAdminWorkA框架正式和大家开源见面了
抱歉,久等了,基于Antd-Vue的VueAdminWorkA框架正式和大家开源见面了