SpringBoot和Vue验证码
后端部分:
一、导入依赖
<!-- 验证码 --><dependency><groupId>com.github.penggle</groupId><artifactId>kaptcha</artifactId><version>2.3.2</version></dependency>
二、创建控制器
KaptchaController2
展示后台生成的验证码
package com.exam.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;import javax.servlet.http.HttpServletRequest;@Controller
public class KaptchaController2 {@ResponseBody@RequestMapping("/getVerify")public String getVerifyCode(HttpServletRequest request){String verifyCode = (String)request.getSession().getAttribute("verifyCode");System.out.println("---------------------"+verifyCode);return verifyCode;}
}
验证码生成方法
package com.exam.controller;import com.google.code.kaptcha.impl.DefaultKaptcha;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;import javax.imageio.ImageIO;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;@RestController
public class KaptchaController {@Autowiredprivate DefaultKaptcha defaultKaptcha;@GetMapping("/createImageCode")public void defaultKaptcha(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {byte[] captchaOutputStream = null;ByteArrayOutputStream imgOutputStream = new ByteArrayOutputStream();try {//生产验证码字符串并保存到session中String verifyCode = defaultKaptcha.createText();httpServletRequest.getSession().setAttribute("verifyCode", verifyCode);BufferedImage challenge = defaultKaptcha.createImage(verifyCode);ImageIO.write(challenge, "jpg", imgOutputStream);} catch (IllegalArgumentException e) {httpServletResponse.sendError(HttpServletResponse.SC_NOT_FOUND);return;}captchaOutputStream = imgOutputStream.toByteArray();httpServletResponse.setHeader("Cache-Control", "no-store");httpServletResponse.setHeader("Pragma", "no-cache");httpServletResponse.setDateHeader("Expires", 0);httpServletResponse.setContentType("image/jpeg");ServletOutputStream responseOutputStream = httpServletResponse.getOutputStream();responseOutputStream.write(captchaOutputStream);responseOutputStream.flush();responseOutputStream.close();}}
三、创建config配置文件
package com.exam.config;import com.google.code.kaptcha.impl.DefaultKaptcha;
import com.google.code.kaptcha.util.Config;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;import java.util.Properties;@Component
public class KaptchaConfig {@Beanpublic DefaultKaptcha getDefaultKaptcha(){DefaultKaptcha defaultKaptcha = new DefaultKaptcha();Properties properties = new Properties();properties.put("kaptcha.border", "no");properties.put("kaptcha.textproducer.font.color", "black");properties.put("kaptcha.image.width", "150");properties.put("kaptcha.image.height", "40");properties.put("kaptcha.textproducer.font.size", "30");properties.put("kaptcha.session.key", "verifyCode");properties.put("kaptcha.textproducer.char.space", "5");Config config = new Config(properties);defaultKaptcha.setConfig(config);return defaultKaptcha;}
}
前端部分:
一、form表单
<el-form :label-position="labelPosition" label-width="80px" :model="formLabelAlign"><el-form-item label="用户名" ><el-input v-model.number="formLabelAlign.username" placeholder="请输入用户名"></el-input></el-form-item><el-form-item label="密码" required><el-input v-model="formLabelAlign.password" placeholder="请输入密码" type='password'></el-input></el-form-item><el-form-item label="验证码" required><el-input v-model="formLabelAlign.verifyCode" auto-complete="off" class="el-col-width"></el-input></el-form-item><el-form-item required><img id="img" alt="验证码" onclick="this.src='/api/createImageCode?d='+new Date()*1" src="/api/createImageCode" /></el-form-item><div class="submit"><el-button type="primary" class="row-login" @click="login()">登录</el-button></div></el-form>
二、js逻辑部分
data() {return {role: 2,labelPosition: 'left',formLabelAlign: {username: '20154084',password: '123456',verifyCode: ''}}},methods: {//用户登录请求后台处理login() {console.log("登录操作执行-------");this.$axios({url: `/api/getVerify`,method: 'get',async: false}).then(res => {if (res.data === this.formLabelAlign.verifyCode) {if (this.formLabelAlign.username === "" || this.formLabelAlign.password === "") {this.$message({showClose: true,type: 'error',message: '用户名或者密码为空'})} else {this.$axios({url: `/api/login`,method: 'post',data: {...this.formLabelAlign}}).then(res => {//下面就可以写自己的方法或者跳转
SpringBoot和Vue验证码相关推荐
- 阿里云 部署SpringBoot和Vue项目 亲测可用(第一次部署经验贴)
阿里云 部署SpringBoot和Vue项目 亲测可用!第一次部署经验贴! 前言:与伙伴一起写了一个项目,但是由于老师要我们部署到服务器上,而我从未有部署过,查看了csdn很多博客,试了好多篇,才成功 ...
- 基于Springboot+Mybatisplus+Vue的科研项目管理系统
基于Springboot+Mybatisplus+Vue的科研项目管理系统 1.1 项目概述 开发语言:Java8 数据库:Mysql5 前端技术:bootstrap 后端框架:Springboot ...
- 利用SpringBoot和Vue实现前后端分离(附源码)
利用SpringBoot和Vue实现前后端分离(附源码) 引言: 本文主要分享了SpringBoot和Vue整合实现前后端分离,实现了简单的增删查改:包括:项目的搭建.后端的实现.前台的实现:(附源码 ...
- (附源码)基于SpringBoot和Vue的厨到家服务平台的设计与实现 毕业设计 063133
springboot厨到家服务系统 摘 要 在社会快速发展的影响下,餐饮迅速发展,大大增加了餐饮服务信息管理的数量.多样性.质量等等的要求,使餐饮的管理和运营比过去十年更加困难.依照这一现实为基础, ...
- 基于javaweb的精品养老院管理系统(java+springboot+mybatis+vue+mysql)
基于javaweb的精品养老院管理系统(java+springboot+mybatis+vue+mysql) 运行环境 Java≥8.MySQL≥5.7.Node.js≥10 开发工具 后端:ecli ...
- springboot基于VUE框架的商城综合项目设计与实现毕业设计源码111612
基于VUE框架的商城综合项目设计与实现 摘 要 随着科学技术的飞速发展,社会的方方面面.各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,商城综合项目当然也不能排除在外.商城综合项 ...
- springboot基于VUE框架的商城综合项目设计与实现毕业设计源码
基于VUE框架的商城综合项目设计与实现 摘 要 随着科学技术的飞速发展,社会的方方面面.各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,商城综合项目当然也不能排除在外.商城综合项 ...
- Springboot整合kaptcha验证码
Springboot整合kaptcha验证码 01.通过配置类来配置kaptcha 01-01.添加kaptcha的依赖: <!-- kaptcha验证码 --> <dependen ...
- 能挣钱的,开源SpringBoot和Vue的企业级项目,代码很规范!
点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 简介 SmartAdmin由河南·洛阳 1024创新实验室 ...
最新文章
- 信息系统项目管理师为什么不建议自学
- 机器学习 测试_测试优先机器学习
- linux查看系统版本_Win8系统查看directx版本的操作方法是什么?
- PyPA Packaging Python Projects
- 初识Firebug 全文 — firebug的使用
- 软件测试之软件开发模型
- 通过二进制方式安装innobackupex
- Linux部署采集小说源码教程,杰奇linux下远程采集,最新思路及方法
- 微信开发模式api接口文档简介
- 经常使用Code 39条形码,你了解它吗? 今天就来看看什么是Code 39
- Wordpress主题制作基础教程
- win10怎样设置远程桌面连接到服务器配置,win10设置远程桌面连接
- 2016程序员你该爆发洪荒之力了!八招教你成功
- Leaving fence domain… found dlm lockspace /sys/kernel/dlm/rgmanager
- 深度学习之五:稀疏编码
- 30岁是全新的20岁?---《20岁时光不再来》
- 计算机工程制图箭头怎么画,AutoCAD制图时怎么画剖视的箭头 AutoCAD箭头画法教程...
- JVM总结之垃圾回收详解
- leaflet添加marker出现偏移,修正方法-icon
- 惠普服务器BIOS密码是多少位
热门文章
- Spooling Directory Source 使用
- python_分水岭算法
- 中国车牌归属地数据库
- android调试遇到ADB server didn't ACK以及蛋疼的sjk_daemon进程
- LeetCode: 868. Binary Gap
- C语言度化为度分秒的方法,一句话转换度:分:秒格式为度.度度度
- 一台微型计算机字长为4个字节,若一台计算机的字长为4个字节,则表明该计算机()。...
- mysql同城双活以及主从库方案
- Prometheus+Grafana (史上最全)
- vue 中的 prop