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

一、需求背景

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. 发送短信增加图片验证码,服务端和输入验证码对比,不一致则拒绝发送。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

为国产信创服务器提供LDAP统一身份认证方案

金融信创作为 8 大行业信创之首&#xff0c;早已成为其他行业信创建设的参考。金融行业有着极为复杂的业务场景&#xff0c;对系统有着极高的稳定可靠需求&#xff0c;因此&#xff0c;在寻找微软 AD 国产化替代方案时&#xff0c;常会涉及到更深层次的场景。例如&#xff0c;最…

计算机大数据毕业设计-基于Flask的旅游推荐可视化系统的设计与实现

基于Flask的旅游推荐可视化系统的设计与实现 编程语言&#xff1a;Python3.10 涉及技术&#xff1a;FlaskMySQL8.0Echarts 开发工具&#xff1a;PyCharm 摘要&#xff1a;以Pycharm为旅游推荐系统开发工具&#xff0c;采用B/S结构&#xff0c;使用Python语言开发旅游景点推…

电网数字孪生的开发框架

电网数字孪生的开发框架通常会综合利用多种技术和工具&#xff0c;包括数据处理、模型建立、仿真与优化等方面的工具和平台。以下是一些常用的开发框架&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作。…

网络安全: Kali Linux 进行 SSH 渗透与防御

目录 一、实验 1.环境 2.nmap扫描目标主机 3.Kali Linux 进行 SSH 渗透 3.Kali Linux 进行 SSH 防御 二、问题 1.SSH有哪些安全配置 一、实验 1.环境 &#xff08;1&#xff09;主机 表1 主机 系统版本IP备注Kali Linux2022.4 192.168.204.154&#xff08;动态&…

【JavaScript 漫游】【031】window 对象总结

文章简介 本篇文章为【JavaScript 漫游】专栏的第 030 篇文章&#xff0c;记录了浏览器模型中 window 对象的相关知识点。 window 对象概述 浏览器里面&#xff0c;window 对象&#xff08;注意&#xff0c;w 为小写&#xff09;指当前的浏览器窗口。它也是当前页面的顶层对…

Java中线程操作的相关方法

当涉及到在Java中操作线程时&#xff0c;有许多内置的类和方法可供使用。下面是关于Java中线程操作的主要方法和技术的简要教程&#xff1a; 1. 创建线程 在Java中&#xff0c;有两种主要的方式来创建线程&#xff1a; - 继承 Thread 类并重写其 run() 方法。 - 实现 Runna…

深入探讨javascript的流程控制与分支结构,以及js的函数

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; 所属的专栏&#xff1a;前端泛海 景天的主页&#xff1a;景天科技苑 文章目录 1.流程控制与分支结构1.if分支结构2.switch case 分支结构3.循环结…

C++消息队列处理提高性能的方法

1 消息队列特点 在当前多数软件系统中,处理传递消息多用消息队列机制,他具有以下优点: 1. 异步通信:消息队列支持异步通信,发送者和接收者之间的解耦程度较高。发送者将消息放入队列后即可继续执行,而不需要等待接收者的响应。这样可以提高系统的吞吐量和处理能力。 2.…

删除指定的数

删除指定的数 题目描述&#xff1a;解法思路&#xff1a;解法代码&#xff1a;运行结果&#xff1a; 题目描述&#xff1a; 先输入10个整数存放在数组中&#xff0c;再输入⼀个整数n&#xff0c;删除数组中所有等于n的数字&#xff0c;数组中剩余的数组保证数组的最前面&#…

电脑键盘快捷键,掌握这些,快速提高效率!

“我是一名电脑新手&#xff0c;在使用电脑时还有很多不懂的。想问问大家平常有什么比较好用的电脑键盘快捷键可以推荐吗&#xff1f;” 在数字化时代&#xff0c;电脑已成为我们生活与工作中不可或缺的工具。掌握一些常用的电脑键盘快捷键&#xff0c;不仅能提高我们的工作效率…

[备赛笔记]——5G大唐杯(5G考试等级考考试基础试题)

个人名片&#xff1a; &#x1f981;作者简介&#xff1a;学生 &#x1f42f;个人主页&#xff1a;妄北y &#x1f427;个人QQ&#xff1a;2061314755 &#x1f43b;个人邮箱&#xff1a;2061314755qq.com &#x1f989;个人WeChat&#xff1a;Vir2021GKBS &#x1f43c;本文由…

学生信息管理展示-h5版(uniapp+springboot+vue)

记录一下做的第一个完整的h5业务。 一、登录 二、个人中心 三、首页&#xff08;管理员&#xff09; 四、首页&#xff08;学生&#xff09; 五、视频展示 学生信息管理展示&#xff08;h5&#xff09;完整版

如何解决由于浏览器版本升级导致脚本用不了的问题【文章底部可得就业内推码】

目录 1. 使用WebDriverManager&#xff1a; 2. 手动下载更新驱动&#xff1a; 3. 设置浏览器选项&#xff1a; 4. 使用Selenium Grid&#xff1a; 5. 参考官方文档和社区&#xff1a; 面对浏览器版本升级导致的网页自动化脚本无法正常运行的问题&#xff0c;你可以采取以下…

chromedriverUnable to obtain driver for chrome using ,selenium找不到chromedriver

1、下载chromedriver chromedriver下载网址&#xff1a;CNPM Binaries Mirror 老版本在&#xff1a;chromedriver/ 较新版本在&#xff1a;chrome-for-testing/ 2、设置了环境变量还是找不到chromedriverUnable to obtain driver for chrome using NoSuchDriverException:…

Java基础及开发环境配置教程

Java基础 Java是一种广泛使用的编程语言&#xff0c;以其“一次编写&#xff0c;到处运行”的能力而闻名。无论是开发桌面应用程序、Web应用程序还是移动应用程序&#xff0c;Java都是一个优秀的选择。本文将介绍Java的基础知识和如何配置Java开发环境。 1. Java简介 Java是…

【CSP试题回顾】201609-2-火车购票

CSP-201609-2-火车购票 解题思路 初始化座位: 首先&#xff0c;它创建了一个20行5列的二维向量 seatMap 用于表示车厢的座位情况。每个座位按顺序赋予了一个编号&#xff0c;从1到100。这部分代码通过两层循环完成&#xff0c;外层循环遍历所有的排&#xff0c;内层循环遍历每…

【学习】torch.nn.CrossEntropyLoss交叉熵损失函数

交叉熵损失函数torch.nn.CrossEntropyLoss 交叉熵主要是用来判定实际的输出与期望的输出的接近程度&#xff0c;为什么这么说呢&#xff0c;举个例子&#xff1a; 在做分类的训练的时候&#xff0c;如果一个样本属于第K类&#xff0c;那么这个类别所对应的输出节点的输出值应…

性能对比:mysql 5.7-8.0-TiDB 7.5-OceanBase 4.2-MariaDB 10.11-机械硬盘-固态硬盘-

1.mysql 5.7-8.0 5.7比8.0优秀 结果&#xff1a;5.7比8.0优秀 10% 2.机械硬盘和固态硬盘 影响不大&#xff0c;主要是CPU 3. JAVA MYSQL 分开 4.『直属 MySQL 』vs 『Docker MySQL』 vs 『Podman MySQL』 直属最好 &#xff0c;其次是Podman&#xff0c;最后是DOCKER 5.MySQL …

CKA考试必备:解锁Pod封装多容器的高级技巧!

往期精彩文章 : 提升CKA考试胜算&#xff1a;一文带你全面了解RBAC权限控制&#xff01;揭秘高效运维&#xff1a;如何用kubectl top命令实时监控K8s资源使用情况&#xff1f;CKA认证必备&#xff1a;掌握k8s网络策略的关键要点提高CKA认证成功率&#xff0c;CKA真题中的节点维…

《JAVA与模式》之责任链模式

系列文章目录 文章目录 系列文章目录前言一、从击鼓传花谈起二、责任链模式的结构三、使用场景四、责任链模式在Tomcat中的应用 前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&…