vue+uniapp实现图形验证码功能-插件(附源码)

news2024/11/24 14:37:16

一、需求背景

vue+uniapp实现图形验证码功能-插件(附源码)
在登录系统时,除了密码登录,还需要提供验证码登录。
涉及验证码,为了安全,一般会加入图形验证码,然后再发短信验证码。

如图:
在这里插入图片描述

二、需求分析

为了系统安全,不能是js前端生成图形码,容易在本地就被破解和获取。
一般是前端请求,通过服务后台生成图形码流,返回给前端显示,然后提交业务时,校验图形码。

三、源代码:

1、/ components / captcha.vue

<uni-popup ref="popup" type="center">
	<div class="popup-content">
		<image style="width: 130px; height: 50px; background-color: #eeeeee;" :src="captchaBase64" />
		<div style="text-align: right;font-size: 12px;">
			<a href="javascript:void(0);" title="点我换一个" @click="queryList()" class="tar cup c43a3c1">看不清?</a>
		</div>
		<div style="margin-top: 10px;">
			<uni-easyinput v-model="formData.captcha" placeholder="请输入图形码" @keyup.enter.native="submit()" autocomplete="off" clear focus />
		</div>
	</div>
	<div class="popup-footer">
		<button type="primary" class="btn-submit" @click="submit" :disabled="formData.captcha?false:true">{{btnTitle || '验证'}}</button>
	</div>
	<div class="popup-close" @click="close">
		<uni-icons type="close" size="25" color="#bbb"></uni-icons>
	</div>
</uni-popup>
......
......

2、/ pages / login.vue

......
<captcha ref="captcha" title="请输入图片验证码" :btn-title="'发送短信验证码'" type="getLoginSms" :req-data="captchaData" @success="captchaSuccess()"></captcha>
......

源码链接:vue+uniapp实现图形验证码功能-插件(附源码)
源码链接:vue+uniapp实现图形验证码功能-插件(附源码)
源码链接:vue+uniapp实现图形验证码功能-插件(附源码)

三、附:发短信相关安全机制

  1. 限制每个手机号的每日发送次数,超过次数则拒发送,提示超过当日次数。
  2. 限制每个ip的最大限制次数。超过次数则拒发送,提示超过ip当日发送最大次数。
  3. 限制每个手机号发送的时间间隔,比如两分钟,没超过2分钟,不允许发送,提示操作频繁。
  4. 发送短信增加图片验证码,服务端和输入验证码对比,不一致则拒绝发送。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1493662.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

springboot236基于springboot在线课程管理系统的设计与实现

基于SpringBoot在线课程管理系统的设计与实现 摘要 本文首先介绍了在线课程管理系统的现状及开发背景&#xff0c;然后论述了系统的设计目标、系统需求、总体设计方案以及系统的详细设计和实现&#xff0c;最后对在线课程管理系统进行了系统检测并提出了还需要改进的问题。本系…

【QQ案例-QQ框架-静态单元格的使用注意 Objective-C语言】

一、来说一下啊,静态单元格的使用注意 1.静态单元格的使用啊,有一个小的地方,在我们最后一份代码啊,“14-QQ”里面,command + C、command + V、复制一份, 文件名,从“14-QQ副本”,改成“15-静态单元格的注意事项“, 好,然后呢,在这个里边儿,我们点开这个小的项目,…

RWEQ模型高手进阶:土壤风蚀模数估算、制图、归因分析全攻略

土壤侵蚀模型的构建能够更好地探寻侵蚀的原因&#xff0c;以便对土壤侵蚀进行一系列预测工作&#xff0c;减轻其对生态环境的影响。由于侵蚀过程较为复杂&#xff0c;因此建模需要充分考虑各项因素&#xff0c;例如气象、水文、地质环境、土壤条件等。修正的土壤风蚀方程&#…

爬取全国大学排名--数据保存在js文件中的处理办法

网页链接&#xff1a;【软科排名】2023年最新软科中国大学排名|中国最好大学排名 点击xhr后发现数据不存在&#xff0c;在搜索框&#xff08;尽量搜索数字和字母&#xff09;搜索&#xff0c;发现数据在js文件中,这是一个JSONP的格式&#xff0c;相对于json的格式 对js文件进行…

ButterKnife实现之Android注解处理器使用教程

ButterKnife实现之Android注解处理器使用教程 1、新建一个注解 1.1、编译时注解 创建注解所需的元注解Retention包含3个不同的值&#xff0c;RetentionPolicy.SOURCE、RetentionPolicy.CLASS、RetentionPolicy.RUNTIME。这3个值代表注解不同的保留策略。 使用RetentionPolic…

3月6日

英语 微机原理 硬件中断由 硬件产生 软件中断由软件提供 硬件是随机的 软件是已知的 硬件通常使用类型码 软件是不需要的 硬件的NMI 和 INTR 引脚 无条件 简单外设 查询 CPU效率不高 需要外设提供状态口 中断 需要外设向CPU发送中断请求具有发送中断请求的能力 同时要发送类型…

PandasPython 笔记1 3.5

一般这两个东西相互配合使用 pd.Series 若没有给定行和列的话&#xff0c;就会自动给0&#xff0c;1&#xff0c;2&#xff0c;3&#xff0c;4 describe 只能描述数字&#xff0c;不可以描述字符串 ascendingfalse&#xff1a;倒序 一般的截取方式 特定的选取方式 有这三…

Vue-04

Vue 指令 指令补充 指令修饰符&#xff1a;通过"."指明一些指令后缀&#xff0c;不同后缀封装了不同的处理操作 → 简化代码 按键修饰符 keyup.enter → 键盘回车监听 在input中使用keyup.enter&#xff0c;这个时候按enter键也能实现添加&#xff0c;和点击按钮实…

(二) 数据库系统的结构抽象与演变

2.1三层模式与两层映像&#xff0c;物理独立性和逻辑独立性 从数据角度可以分为三层视图模式默认指的是全局模式&#xff0c;视图默认指的是外部视图 一个数据库只有一个内模式 DBMS要让用户定义三层模式&#xff0c;程序自动地实现两层映像 。 从外部视图到外模式的数据结构的…

chrome 浏览器只有开启clash 才能上网请求

最近重装了chrome 浏览器&#xff0c;发现只有开着clash才能正常访问网络&#xff0c;关了就无法访问网站。 原因在于浏览器的DNS配置出了问题 现象如下&#xff1a; 出问题的设置&#xff1a; 解决&#xff1a; 把DNS提供商改成系统默认&#xff0c;或者直接把对您访问的网…

网络原理初识(1)

目录 一、网络发展史 1、独立模式 2、网络互联 3、局域网LAN 局域网组建的方式 1、基于网线直连 2、基于集线器组建 3、基于交换机组建 4、基于交换机和路由器组建 4、广域网WAN 二、网络通信基础 1、IP地址 2、端口号 3、认识协议 4、五元组 一、网络发展史 1、独立模式 …

MySQL·SQL优化

目录 一 . 前言 二 . 优化方法 1 . 索引 &#xff08;1&#xff09;数据构造 &#xff08;2&#xff09;单索引 &#xff08;3&#xff09;explain &#xff08;4&#xff09;组合索引 &#xff08;5&#xff09;索引总结 2 . 避免使用select * 3 . 用union all代替u…

Linux第69步_依据“旧字符设备的一般模板”编写LED驱动

在编写LED驱动之前&#xff0c;先要了解和硬件有关的一些知识。 1、了解“MMU内存管理单元”以及相关函数 MMU是Memory Manage Unit的缩写&#xff0c;意思是“内存管理单元”。 老版本的Linux内核要求处理器必须有“MMU内存管理单元”&#xff0c;而现在的Linux内核已经支持…

【Linux】常见指令1(ls指令、pwd指令、cd指令、touch指令、mkdir指令、rmdir指令、man指令、cp指令、mv指令、cat指令)

目录 01.ls指令与ll指令 02.pwd指令 03.cd指令 04.touch指令 05.mkdir指令 06.rmdir指令&&rm指令 07.man指令 08.cp指令 09.mv指令 10.cat指令 01.ls指令与ll指令 ls指令&#xff1a; 原型&#xff1a;list directory contents 语法&#xff1a;ls[选项][目录…

单片机的boot升级和双备份升级

同时boot升级还会有一个策略来防止单片机变成砖&#xff1a;就是boot的升级程序写在boot中&#xff0c;这个部分的的升级程序是不会改动的&#xff0c;如果检测到升级失败&#xff0c;会一直等待&#xff0c;直到升级正确的程序

二维码门楼牌管理系统应用场景:城市规划与土地管理的新利器

文章目录 前言一、城市规划部门的新助手二、门牌数据的深度应用三、支持可持续城市发展四、与城市规划部门的联动 前言 随着科技的不断进步&#xff0c;二维码技术已经深入到我们生活的方方面面。在城市规划与土地管理领域&#xff0c;二维码门楼牌管理系统正成为一项革命性的…

2024-3-5 python 序列小知识点

1、for循环的变量作用域不限于for循环内 >>>i 10 >>>for i in range(100): >>> print(i) >>> i 100此处&#xff0c;for循环里的 i 修改了之前的 i 变量的值。 2、列表推导式里的变量作用域仅限于推导式内 推导式犹如一个函数&…

96道前端面试题,前端开发工作内容

HTML、CSS、JS三大部分都起什么作用&#xff1f; HTML内容层&#xff0c;它的作用是表示一个HTML标签在页面里是个什么角色&#xff1b;CSS样式层&#xff0c;它的作用是表示一块内容以什么样的样式&#xff08;字体、大小、颜色、宽高等&#xff09;显示&#xff1b;JS行为层…

亚信安慧AntDB的全方位支持力

AntDB以持续创新和技术进步为理念&#xff0c;不断优化性能和功能&#xff0c;至今已经保持了15年的平稳运行。这一漫长的历程并非偶然&#xff0c;而是源于AntDB团队对技术的不懈探索和追求。他们始终秉承着“永不停歇&#xff0c;永不满足”的信念&#xff0c;将技术创新作为…

java-ssm-jsp-大学社团管理系统

java-ssm-jsp-大学社团管理系统 获取源码——》公主号&#xff1a;计算机专业毕设大全