【Vue】图形验证码功能

说明:

  1. 图形验证码,本质就是一个请求回来的图片
  2. 用户将来输入图形验证码,用于强制人机交互,可以抵御机器自动化攻击 (例如:避免批量请求获取短信)

需求:

  1. 动态将请求回来的 base64 图片,解析渲染出来
  2. 点击验证码图片盒子,要刷新验证码

image-20230617163721858

  1. 准备数据,获取图形验证码后存储图片路径,存储图片唯一标识
async created () {
  this.getPicCode()
},
data () {
  return {
   picKey: '', // 将来请求传递的图形验证码唯一标识
   picUrl: '', // 存储请求渲染的图片地址
   picCode: '' // 用户输入的图形验证码
  }
},
methods: {
  // 获取图形验证码
  // 将方法封装起来:1.更清晰,全写在created里太麻烦了 2.点击盒子需要刷新,刷新又需要重新调
  async getPicCode () {
    // 后端可以通过这个key找到验证码图片
    const { data: { base64, key } } = await request.get('/captcha/image')
    this.picUrl = base64
    this.picKey = key
  }
}
  1. 动态渲染图形验证码,并且点击时要重新刷新验证码
<!-- 顺便将picCode的v-model绑定一下 -->
<input v-model="picCode" class="inp" maxlength="5" placeholder="请输入图形验证码" type="text">
<!-- v-if="picUrl":有图片的时候才渲染,或者可以给个默认的图片加载失败的图片 -->
<img v-if="picUrl" :src="picUrl" @click="getPicCode">
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值