RuoYi-Vue开源项目2-前端登录验证码生成过程分析
前端登录验证码实现过程
- 生成过程分析

生成过程分析
验证码的生成过程简单概括为:前端登录页面加载时,向后端发送一个请求,返回验证码图片给前端页面展示
- 前端页面加载触发代码:
import { getCodeImg } from "@/api/login";created() {this.getCode();this.getCookie();},// 1.页面初始化页面调用的验证码加载函数getCode() {getCodeImg().then(res => {this.captchaEnabled = res.captchaEnabled === undefined ? true : res.captchaEnabled;if (this.captchaEnabled) {this.codeUrl = "data:image/gif;base64," + res.img;this.loginForm.uuid = res.uuid;}});},// 2.获取验证码APIexport function getCodeImg() {return request({url: '/captchaImage',headers: {isToken: false},method: 'get',timeout: 20000})}// 3.axios请求const service = axios.create({// axios中请求配置有baseURL选项,表示请求URL公共部分baseURL: process.env.VUE_APP_BASE_API,// 超时timeout: 10000})// 4.解决跨域问题,将前端的URL替换成后端可识别的URLproxy: {// detail: https://cli.vuejs.org/config/#devserver-proxy[process.env.VUE_APP_BASE_API]: {target: `http://localhost:8080`,changeOrigin: true,pathRewrite: {['^' + process.env.VUE_APP_BASE_API]: ''}}},
}
细节说明:
created钩子下执行的代码时机是在页面刚刚加载后执行的,因此主要调用了getCodeImg()方法@/可以理解为src/getCodeImg()使用axios向后端发送请求- 前端
vue.config.js文件中proxy解决请求跨域问题
- 后端请求代码分析
快速查询请求小妙招:


后端核心逻辑
- 判断验证码校验是否开启
- 生成验证码,验证码的题目被转换成验证码图片,验证码答案存入Redis中,Key为固定验证码字符串头部+
UUID - 验证码图片写入转换流中,
Base64.encode("转换流.toByteArray()")存入Ajax,UUID存入Ajax返回给前端 - 前端接收为
this.codeUrl = "data:image/gif;base64," + res.img;,使用codeUrl可以直接展示
相关文章:
RuoYi-Vue开源项目2-前端登录验证码生成过程分析
前端登录验证码实现过程 生成过程分析 生成过程分析 验证码的生成过程简单概括为:前端登录页面加载时,向后端发送一个请求,返回验证码图片给前端页面展示 前端页面加载触发代码: import { getCodeImg } from "/api/login&q…...
error: C preprocessor fails sanity check
问题 ./configure --prefix/opt/mips_lib/libev --hostmipsel-openwrt-linux CCmipsel-openwrt-linux-gcc运行后提示 checking how to run the C preprocessor... mipsel-openwrt-linux-gcc --sysroot/opt/mt7628/toolchain-mipsel_24kc_gcc-8.4.0_musl -I/opt/mt7628/toolch…...
Kubernetes实战(三十一)-安装containerd
1 资源 containerd项目官方地址 GitHub - containerd/containerd: An open and reliable container runtime containerd的发布版本地址: Releases containerd/containerd GitHub 2 安装containerd 2.1 解压安装 2.1.1 下载压缩包 curl -LO https://github…...
使用docker搭建faiss向量数据库
为了不污染服务器环境,保证程序运行时有更好的隔离性,领导要求基于容器运行程序。 一、准备工作 1、创建文件夹faiss 该文件夹有用于存放faiss相关的文件及脚本 mkdir ~/faiss 2、创建data文件夹 cd ~/faiss mkdir data 这个文件夹用于volume…...
安卓面试题多线程 121-125
121. 简述当一个线程进入某个对象的一个 synchronized 的实例方 法后,其它线程是否可进入此对象的其它方法 ?如果其他方法没有 synchronized 的话,其他线程是可以进入的。 所以要开放一个线程安全的对象时,得保证每个方法都是线程安全的122. 简述乐观锁和悲观锁的理解及如何…...
什么是 HTTPS?它是如何解决安全性问题的?
什么是 HTTPS? HTTPS(HyperText Transfer Protocol Secure)是一种安全的通信协议,用于在计算机网络上安全地传输超文本(如网页、图像、视频等)和其他数据。它是 HTTP 协议的安全版本,通过使用加…...
C++入门(下)
文章目录 1:引用1.1:引用概念1.2:引用的特性.1.2.1:引用在定义时必须初始化1.2.2:一个变量可以有多个引用1.2.3:引用一旦引用一个实体,再不能引用其他实体. 1.3:应用场景1.3.1:做参数1.3.2:做返回值1.3.2.1:传值返回1.3.2.2:传引用返回(错误示范)1.3.2.3:传引用返回(正确示范) …...
2024-03-20 作业
作业要求: 1> 创建一个工人信息库,包含工号(主键)、姓名、年龄、薪资。 2> 添加三条工人信息(可以完整信息,也可以非完整信息) 3> 修改某一个工人的薪资(确定的一个&#x…...
【机器学习】深入解析线性回归模型
🎈个人主页:豌豆射手^ 🎉欢迎 👍点赞✍评论⭐收藏 🤗收录专栏:机器学习 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进步! 【机器学习】深入解析线性回归模型 引入一 初步了解1.1 概念1.2 类比二 基本要素2.1 数据2.2 模型…...
新一代云原生数据库OLAP
2023 OLAP峰会(公开)PPT汇总(25份).zip 新一代云原生数据库的OLAP(联机分析处理)能力是其重要的特性之一,这种能力使得数据库能够支持复杂的数据分析查询,从而满足企业对大数据的深…...
JavaEE--小Demo
目录 下载包 配置 修改文件 pom.xml application.properties 创建文件 HelloApi.java GreetingController.java Greeting.java DemoApplication.java 运行包 运行命令 mvn package cd target dir java -jar demo-0.0.1-SNAPSHOT.jar 浏览器测试结果 下载包 …...
一代大神跌落神坛——Java炸了!
曾经它是只手遮天的一大计算机语言.......可现如今,腹背受敌、大势已去,一代神话跌落神坛! Java薪水20k降至15k难掩颓势,事业编3k升至3500尽显嫡道风范!嫡嫡道道、嫡嫡道道~ 没错,就是它!Java…...
面试算法-64-零钱兑换
题目 给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。 计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回 -1 。 你可以认为每种硬币的数量是无限的…...
Java复习06 Spring 代码概念
Java复习06 Spring 代码概念 1.基本代码 Component public class CommunityApplicationTests implements ApplicationContextAware {private ApplicationContext applicationContext;Overridepublic void setApplicationContext(ApplicationContext applicationContext) thr…...
【研究僧总结】回顾第1095个创作日
目录 前言一. 机缘二. 日常三. 展望 前言 感觉刚过1024不久,现在又来个1095创作日 一. 机缘 研究僧一直在找平台做笔记,方便之后的回顾总结,也让各位网友见证你我的成长,相互学习 止不住的写文止不住的成长,大家共同…...
QT(6.5) cmake构建C++编程,调用python
一、注意事项 explicit c中,一个参数的构造函数(或者除了第一个参数外其余参数都有默认值的多参构造函数),承担了两个角色,构造器、类型转换操作符, c提供关键字explicit,阻止转换构造函数进行的隐式转换的发生&#…...
Java开发从入门到精通(九):Java的面向对象OOP:成员变量、成员方法、类变量、类方法、代码块、单例设计模式
Java大数据开发和安全开发 (一)Java的变量和方法1.1 成员变量1.2 成员方法1.3 static关键字1.3.1 static修饰成员变量1.3.1 static修饰成员变量的应用场景1.3.1 static修饰成员方法1.3.1 static修饰成员方法的应用场景1.3.1 static的注意事项1.3.1 static的应用知识…...
通过 Socket 手动实现 HTTP 协议
你好,我是 shengjk1,多年大厂经验,努力构建 通俗易懂的、好玩的编程语言教程。 欢迎关注!你会有如下收益: 了解大厂经验拥有和大厂相匹配的技术等 希望看什么,评论或者私信告诉我! 文章目录 一…...
探索数据结构:双向链表的灵活优势
✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:数据结构与算法 贝蒂的主页:Betty’s blog 1. 前言 前面我们学习了单链表,它解决了顺序表中插入删除需…...
记录一次服务器内存使用率过高达到90%告警问题排查。
目录 一、前言二、问题排查处理三、 结尾 👩🏽💻个人主页:阿木木AEcru 🔥 系列专栏:Docker容器化部署系列 💹每一次技术突破,都是对自我能力的挑战和超越。 一、前言 一大早就有一…...
874653
867453...
如何在CSS中正确加载本地JPG背景图片
本文详解html页面中css背景图(如telahome2.jpg)无法显示的常见原因及解决方案,涵盖路径写法、属性拆分、推荐实践与调试技巧,助你快速修复静态资源加载失败问题。 本文详解html页面中css背景图(如telahome2.jpg&a…...
基于ChatGLM3-6B的智能文档处理系统:从PDF解析到知识提取
基于ChatGLM3-6B的智能文档处理系统:从PDF解析到知识提取 1. 引言 每天都有海量的文档需要处理,从合同协议到技术手册,从财务报告到学术论文。传统的人工处理方式不仅效率低下,还容易出错。想象一下,一个法务团队需要…...
INTERFACE AZI-132B接口模块
INTERFACE AZI-132B 接口模块INTERFACE AZI-132B 是一款用于工业自动化系统中的接口模块,主要用于实现设备之间的信号连接与数据传输,适用于PLC及各类控制系统的接口扩展应用。用于工业自动化控制系统属于信号接口与通信模块支持多通道信号输入处理可实现…...
保姆级教程:在Colab上快速部署CoTracker,5分钟搞定你的第一个视频点跟踪Demo
零基础玩转CoTracker:Colab环境5分钟实现视频点跟踪全流程 在短视频和智能监控时代,视频中的物体跟踪技术正从实验室走向大众应用。想象一下,你拍摄的宠物视频能自动标记小猫的运动轨迹,或者健身视频能实时追踪哑铃的位移曲线——…...
Qwen-Image-2512像素艺术生成实战:从提示词设计到风格控制全流程
Qwen-Image-2512像素艺术生成实战:从提示词设计到风格控制全流程 1. 像素艺术创作新选择 最近在尝试用AI生成像素艺术时,发现了一个特别有意思的组合:Qwen-Image-2512模型加上专门优化的Pixel Art LoRA。这个搭配能生成质量惊人的像素风格图…...
【AI】Gemma 4
Gemma 4 是 Google DeepMind 于 2026 年 4 月 2 日 发布的最新开源模型家族,这是 Gemma 系列迄今为止最重大的升级。以下是关键信息总结:核心亮点特性详情发布时间2026 年 4 月 2 日许可证Apache 2.0(首次完全开源商用)模型家族4 …...
**发散创新:基于RBAC模型的开源权限管理系统设计与实现**在现代软件架构中,权限控制是系统安全的核
发散创新:基于RBAC模型的开源权限管理系统设计与实现 在现代软件架构中,权限控制是系统安全的核心组成部分。传统的角色权限管理(Role-Based Access Control, RBAC)虽已成熟,但在实际落地时仍面临灵活性差、扩展性弱等…...
AI时代工程师的Superpowers进化论技术
核心主题:探讨AI技术如何重塑工程师的能力边界,分析工程师在AI时代需要掌握的新技能与思维模式。技术驱动的能力进化传统工程师能力模型核心技能:编程、算法、系统设计、调试局限性:依赖人工分析,效率天花板明显AI赋能…...
全文降AI工具价格效果对比:嘎嘎降AI、比话降AI怎么选
全文降AI工具价格效果对比:嘎嘎降AI、比话降AI怎么选 选全文降AI工具的时候,大家最关心两件事:一是效果好不好,二是价格贵不贵。 效果不好,花再少的钱也是浪费。效果好但价格离谱,很多同学也吃不消。所以最…...
