当前位置: 首页 > news >正文

spring boot验证码

验证码在实际工作中还是经常会使用上的。所以,在这儿,我也先来一个最简单的验证码,在为我也还是一个初学java的小白,有好多东东都还不是很了解。希望大家多多指教
1、引入依赖,这个不用多说,想必大家都懂。

<dependency><groupId>cn.hutool</groupId><artifactId>hutool-captcha</artifactId><version>5.8.31</version></dependency>

2、在控制器中使用,在代码中,我就加一些注释作为讲解吧

@GetMapping("/getCode")
/*** 返回的是图片流*/
public ResponseEntity<byte[]> getCode() throws IOException {//配置验证码图片的宽度,以及验证码字符的个数,还有它的模糊程度(也就是干扰线),这儿设置4个字符,没有干扰线LineCaptcha captcha = new LineCaptcha(130, 40  , 4 , 0);//配置只有纯数字 1到9captcha.setGenerator(new RandomGenerator("123456789" , 4));//配置背景颜色captcha.setBackground(Color.pink);//配置字体captcha.setFont(new Font("微软雅黑", Font.BOLD, 18));//这儿就是生成验证码了String captchaCode = captcha.getCode();//其实,到这儿,验证码已配置完成,大家可以打印下 captchaCode 是可以出来4个字符的字符串的。//下面两行是生成图片的文件流ByteArrayOutputStream outputStream = new ByteArrayOutputStream();ImageIO.write(captcha.getImage() , "png" , outputStream);//在这中间还有一串的代码//那就是还需要生成唯一的uuid,将来需要结合当前生成验证码结合起来//把它们存到缓存中,这样,前端发送过后就可以拿来做比较//这一段的代码我还没学会,所以我现在也没写出来//我在这儿先留个空,现在还在学习中……//生成uuidString uuid = UUID.randomUUID().toString().replace("-", "");redisClass.setString(uuid , captchaCode);//这儿就是设置返回体以及返回的内容(最后返回的是一个图片的文件流,直接在浏览器访问看到是一个图片)HttpHeaders headers = new HttpHeaders();headers.setContentType(org.springframework.http.MediaType.IMAGE_PNG);headers.set("Cache-Control", "no-store, no-cache, must-revalidate, post-check=0, pre-check=0");headers.setPragma("no-cache");headers.set("uuid" , uuid);//uuid返回响应头给前端headers.setDate("Expires", 0);byte[] b = outputStream.toByteArray();return new ResponseEntity<>(b, headers, HttpStatus.OK);
}

http://www.mrgr.cn/news/79525.html

相关文章:

  • webstorm开发uniapp(从安装到项目运行)
  • vue的前端架构 介绍各自的优缺点
  • 网卡驱动及dpdk的使用
  • 【java常用算法和应用场景】
  • Spring Boot 进阶指南:深入核心与实战技巧
  • Simdroid-EC:液冷仿真新星,助力新能源汽车电机控制器高效散热
  • Kafka服务器的简单部署以及消息的生产、消费、监控
  • 【CKS最新模拟真题】获取多个集群的上下文名称并保存到指定文件中
  • Unity教程(十九)战斗系统 受击反馈
  • 避大坑!Vue3中reactive丢失响应式的问题
  • 链表OJ题型讲解与总结
  • 力扣每日一题 - 999. 可以被一步捕获的棋子数
  • 默认插槽,具名插槽(v-slot:具名,name=‘ ‘),作用域插槽
  • Ubuntu Linux 图形界面工具管理磁盘分区和文件系统(八)
  • 电子商务人工智能指南 1/6 - 搜索、广告和发现
  • 1-1 C语言链表
  • 报错:Invalid HTTP method: PATCH executing PATCH http://XXX.XXX
  • HarmonyOS(63) ArkUI 自定义占位组件NodeContainer
  • centos部署SkyWalking并在springcloud项目中用法举例
  • openharmony开发资料合集
  • 13.在 Vue 3 中使用OpenLayers加载鹰眼控件示例教程
  • 18.[极客大挑战 2019]BabySQL1
  • 书后习题答案:《Python程序设计基础(第2版)》,电子工业出版社,2020.01
  • SpringBoot自动配置底层核心源码
  • 电子商务人工智能指南 2/6 - 需求预测和库存管理
  • 【开源】A064—基于JAVA的民族婚纱预定系统的设计与实现