hutool工具类实现验证码
利用hutool工具类,可以很方便生成不同类型的验证码。这里简单记录下使用过程。
一.生成验证码
提供接口将生成的验证码存入session或redis,将验证码以图片格式或者base64编码串返回给调用端。
二.校验验证码
提供接口将收到调用端传过来的校验码,从session或redis取出验证码,两个验证码都全部转小写,进行无大小写区分匹配校验,返回true/flase 。
三.使用案例
1.引入hutool工具类
<!-- hutool工具类 -->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.7.12</version>
</dependency>
2.VerifyCodeResp接口响应体
@Data
public class VerifyCodeResp implements Serializable {
/**
* header头参数:Captcha-Key
*/
private String captchaKey;
/**
* 验证码图片
*/
private String captchaImg;
}
3.VerifyCodeController验证码工具类
/**
* 验证码工具类
*/
@RestController
public class VerifyCodeController {
@Resource
RedisTemplate<String, String> redisTemplate;
/**
* 生成验证码
*
* 方法一 ShearCaptcha
* 图片格式
* session存储
* 接口需添加白名单放行
*
* @param request HttpServletRequest
*/
@GetMapping("/verify")
public void verify(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.setContentType("image/jpeg");
response.setHeader("Pragma", "no-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
//定义图形验证码的长、宽、验证码字符数、干扰线宽度
ShearCaptcha shearCaptcha = CaptchaUtil.createShearCaptcha(150, 40, 5, 4);
//图形验证码写出,可以写出到文件,也可以写出到流
shearCaptcha.write(response.

本文介绍了如何使用Hutool工具类在SpringBoot项目中生成和校验验证码,包括ShearCaptcha和LineCaptcha两种方式,以及通过session和Redis存储验证码的示例。
最低0.47元/天 解锁文章
1565

被折叠的 条评论
为什么被折叠?



