返回顶部
首页 > 资讯 > 精选 >vue如何实现登录时图形验证码
  • 223
分享到

vue如何实现登录时图形验证码

2023-06-29 09:06:47 223人浏览 八月长安
摘要

这篇文章主要介绍Vue如何实现登录时图形验证码,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体内容如下效果图:点击图案可以切换字符1.新建 Identify.vue 组件<template> 

这篇文章主要介绍Vue如何实现登录时图形验证码,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

具体内容如下

效果图:

点击图案可以切换字符

vue如何实现登录时图形验证码vue如何实现登录时图形验证码

1.新建 Identify.vue 组件

<template>  <div>  <canvas      id="s-canvas"      :width="contentWidth"      :height="contentHeight"></canvas>  </div></template><script>export default {  name: "identify",  props: {    identifyCode: {      type: String,      default: ''    },    fontSizeMin: {      type: Number,      default: 28    },    fontSizeMax: {      type: Number,      default: 40    },    backgroundColORMin: {      type: Number,      default: 180    },    backgroundColorMax: {      type: Number,      default: 240    },    colorMin: {      type: Number,      default: 50    },    colorMax: {      type: Number,      default: 160    },    lineColorMin: {      type: Number,      default: 40    },    lineColorMax: {      type: Number,      default: 180    },    dotColorMin: {      type: Number,      default: 0    },    dotColorMax: {      type: Number,      default: 255    },    contentWidth: {      type: Number,      default: 130    },    contentHeight: {      type: Number,      default: 40    }  },  methods:{    // 生成一个随机数    randomNum (min, max) {      return Math.floor(Math.random() * (max - min) + min)    },    // 生成一个随机的颜色    randomColor (min, max) {      let r = this.randomNum(min, max)      let g = this.randomNum(min, max)      let b = this.randomNum(min, max)      return 'rgb(' + r + ',' + g + ',' + b + ')'    },    drawPic () {      let canvas = document.getElementById('s-canvas')      let ctx = canvas.getContext('2d')      ctx.textBaseline = 'bottom'      // 绘制背景      ctx.fillStyle = this.randomColor(          this.backgroundColorMin,          this.backgroundColorMax      )      ctx.fillRect(0, 0, this.contentWidth, this.contentHeight)      // 绘制文字      for (let i = 0; i < this.identifyCode.length; i++) {        this.drawText(ctx, this.identifyCode[i], i)      }      this.drawLine(ctx)      this.drawDot(ctx)    },    drawText (ctx, txt, i) {      ctx.fillStyle = this.randomColor(this.colorMin, this.colorMax)      ctx.font =          this.randomNum(this.fontSizeMin, this.fontSizeMax) + 'px SimHei'      let x = (i + 1) * (this.contentWidth / (this.identifyCode.length + 1))      let y = this.randomNum(this.fontSizeMax, this.contentHeight - 5)      let deg = this.randomNum(-30, 30)      // 修改坐标原点和旋转角度      ctx.translate(x, y)      ctx.rotate(deg * Math.PI / 270)      ctx.fillText(txt, 0, 0)      // 恢复坐标原点和旋转角度      ctx.rotate(-deg * Math.PI / 270)      ctx.translate(-x, -y)    },    drawLine (ctx) {      // 绘制干扰线      for (let i = 0; i < 2; i++) {        ctx.strokeStyle = this.randomColor(            this.lineColorMin,            this.lineColorMax        )        ctx.beginPath()        ctx.moveTo(            this.randomNum(0, this.contentWidth),            this.randomNum(0, this.contentHeight)        )        ctx.lineTo(            this.randomNum(0, this.contentWidth),            this.randomNum(0, this.contentHeight)        )        ctx.stroke()      }    },    drawDot (ctx) {      // 绘制干扰点      for (let i = 0; i < 20; i++) {        ctx.fillStyle = this.randomColor(0, 255)        ctx.beginPath()        ctx.arc(            this.randomNum(0, this.contentWidth),            this.randomNum(0, this.contentHeight),            1,            0,            2 * Math.PI        )        ctx.fill()      }    }  },  watch: {    identifyCode () {      this.drawPic()    }  },  mounted () {    this.drawPic()  }}</script><style lang="sCSS" scoped>#s-canvas {  height: 38px;}</style>

2.在父组件 index.vue注册使用

<template>    <div @click="refreshCode" >        <Identify :identifyCode="identifyCode" ></Identify>    </div></template><script>import Identify from '@/components/test/identify'export default {  name: "index",  components:{   Identify   },  data(){      return {         identifyCode: '',      // 验证码规则      identifyCodes: '123456789ABCDEFGHGKMNPQRSTUVWXYZ',    }   },  methods:{    // 切换验证码    refreshCode() {      this.identifyCode = ''      this.makeCode(this.identifyCodes, 4)      console.log(this.identifyCode)    },    // 生成随机验证码    makeCode(o, l) {      for (let i = 0; i<l; i++) {        this.identifyCode += this.identifyCodes[            Math.floor(Math.random() * (this.identifyCodes.length - 0) + 0)            ]      }    },    mounted() {        this.refreshCode()  }}</script><style scoped></style>

以上是“vue如何实现登录时图形验证码”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网精选频道!

--结束END--

本文标题: vue如何实现登录时图形验证码

本文链接: https://lsjlt.com/news/324004.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • vue如何实现登录时图形验证码
    这篇文章主要介绍vue如何实现登录时图形验证码,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体内容如下效果图:点击图案可以切换字符1.新建 Identify.vue 组件<template> ...
    99+
    2023-06-29
  • vue实现登录时图形验证码
    本文实例为大家分享了vue实现登录时图形验证码的具体代码,供大家参考,具体内容如下 效果图: 点击图案可以切换字符 1.新建 Identify.vue 组件 <templat...
    99+
    2024-04-02
  • vue实现图形验证码登录
    本文实例为大家分享了vue实现图形验证码登录的具体代码,供大家参考,具体内容如下 1、效果图 2、在components下面新建文件identify.vue,内容: <t...
    99+
    2024-04-02
  • vue实现登录时的图片验证码
    本文实例为大家分享了vue实现登录时的图片验证码的具体代码,供大家参考,具体内容如下 效果图 一、新建vue组件components/identify/identify.vue ...
    99+
    2024-04-02
  • Vue如何实现验证码登录
    本文小编为大家详细介绍“Vue如何实现验证码登录”,内容详细,步骤清晰,细节处理妥当,希望这篇“Vue如何实现验证码登录”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。效果展示第一步:创建验证码组件这里是组件的代码...
    99+
    2023-06-29
  • vue实现图形验证码
    本文实例为大家分享了vue实现图形验证码的具体代码,供大家参考,具体内容如下 效果图: 或 或 或 代码: 验证码组件: src/common/sIdentify.vue ...
    99+
    2024-04-02
  • vue+springboot如何实现登录验证码
    这篇文章主要介绍vue+springboot如何实现登录验证码,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!先看效果图在login页面添加验证码html在后端pom文件添加kaptcha依赖<dependenc...
    99+
    2023-06-15
  • vue实现登录验证码
    本文实例为大家分享了vue实现登录验证码的具体代码,供大家参考,具体内容如下 先来demo效果图 canvas验证码组件(可直接复制,无需改动) <template>...
    99+
    2024-04-02
  • vue+springboot实现登录验证码
    本文实例为大家分享了vue+springboot实现登录验证码的具体代码,供大家参考,具体内容如下 先看效果图 在login页面添加验证码html 在后端pom文件添加kaptc...
    99+
    2024-04-02
  • vue项目实现图形验证码
    本文实例为大家分享了vue项目实现图形验证码的具体代码,供大家参考,具体内容如下 效果预览:(项目要求清爽一点,所以没背景。但是下面的代码会把背景干扰写进去) 1.下载identi...
    99+
    2024-04-02
  • vue实现登录时滑块验证
    本文实例为大家分享了vue实现登录时滑块验证的具体代码,供大家参考,具体内容如下 1.效果图 2. 新建 SliderCheck.vue组件 <template> &...
    99+
    2024-04-02
  • vue实现手机验证码登录
    本文实例为大家分享了vue实现手机验证码登录的具体代码,供大家参考,具体内容如下 验证码 <template> <div> <el-ma...
    99+
    2024-04-02
  • vue实现登录滑动拼图验证
    本文实例为大家分享了vue实现登录滑动拼图验证的具体代码,供大家参考,具体内容如下 一、安装插件 npm install --save vue-monoplasty-slide-ve...
    99+
    2024-04-02
  • php如何实现验证码登录
    本文操作环境:windows10系统、php 7、thinkpad t480电脑。验证码在我们的日常生活中非常常见,使用验证码有诸多好处,如:防止恶意的破解密码。如一些黑客为了获取到用户信息,通过不同的手段向服务器发送数据,验证猜测用户信息...
    99+
    2017-10-10
    php 验证码
  • javaweb如何实现登录验证码
    这篇文章给大家分享的是有关javaweb如何实现登录验证码的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。使用:Controller:生成验证码@RequestMapping("/user/check.j...
    99+
    2023-05-30
    javaweb
  • vue如何实现登录路由验证
    小编给大家分享一下vue如何实现登录路由验证,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!vue的项目的登录状态如果用vuex状态管理,页面一刷新vuex管理的状态就会消失,这样登录路由验...
    99+
    2024-04-02
  • Laravel8 使用图形验证码做登录功能的实现
    一、 安装扩展包 composer require gregwar/captcha 二、定义路由 //路由分组 Route::group(['prefix'=>'admi...
    99+
    2024-04-02
  • vue+Element实现登录随机验证码
    本文实例为大家分享了vue+Element实现登录随机验证码的具体代码,供大家参考,具体内容如下 验证码验证只是前端,无需后台交互 首先,创建一个identify.vue页面,用于写...
    99+
    2024-04-02
  • VUE实现token登录验证
    本文实例为大家分享了VUE实现token登录验证的具体代码,供大家参考,具体内容如下 实现这个登录功能的过程真是一波三折,中途出现了bug,整了两三天才解决了问题,心力交瘁,简直一个...
    99+
    2024-04-02
  • vue怎么实现手机验证码登录
    这篇文章主要介绍“vue怎么实现手机验证码登录”,在日常操作中,相信很多人在vue怎么实现手机验证码登录问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue怎么实现手机验证码登录”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-25
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作