一滴水只有放进大海里才永远不会干涸,一个人只有当他把自己和集体事业融合在一起的时候才能最有力量。
——雷锋
一. redis和postman的安装
redis和postman自行在网上安装即可
redis官网地址:https://redis.io/download
postman官网地址:https://www.postman.com
建议将redis客户端也一起安装
二. Springboot项目的创建
使用idea编程软件,创建springboot,勾选web模块
三. 代码编写
1.目录结构
我用的springboot版本是2.6.3
2.引入需要的依赖
<!--redis依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!--图形验证码依赖-->
<dependency>
<groupId>com.github.whvcse</groupId>
<artifactId>easy-captcha</artifactId>
<version>1.6.2</version>
</dependency>
<!--阿里巴巴fastjson-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.44</version>
</dependency>
3.核心实现
@GetMapping("/captcha")
public void captcha(HttpServletRequest request, HttpServletResponse response) throws Exception {
SpecCaptcha specCaptcha = new SpecCaptcha(130, 48, 4);
specCaptcha.setFont(Captcha.FONT_1);
String id = UUID.randomUUID().toString();
response.setHeader("id", id);
CaptchaUtil.out(specCaptcha, request, response);
String verCode = specCaptcha.text().toLowerCase();
//不设置过期
redisClient.set(id, verCode);
//设置一分钟过期
//redisClient.set(id,verCode,60);
}
@PostMapping(value = "/check")
public boolean check(@RequestBody String info) {
JSONObject jsonObject = JSON.parseObject(info);
//获取传过来的id 和 code
String id = jsonObject.getString("id");
String code = jsonObject.getString("code");
String s = "";
//获取redis里面存的code
Object obj = redisClient.get(id);
if(obj != null){
s = obj.toString();
}
//比较输入的code和redis的code
boolean flag = code.equalsIgnoreCase(s);
//匹配成功就删除redis存储
if(flag){
redisClient.delete(id);
}
return flag;
}
4.测试(记得先启动redis)
生成验证码
在redis中查看生成的key和验证码(code)
验证生成的验证码
源码已上传至github,地址:https://github.com/conciseL/java-/tree/master
如若可以,请帮忙点个star
每天进步一点点,开心也多一点点