springboot怎么集成easy-captcha实现图像验证码显示和登录
作者:WarmHope
时间:2023-05-10
来源:互联网
浏览:0
1、easy-captcha简介easy-captcha是生成图形验证码的Java类库,支持gif、中文、算术等类型,可用于JavaWeb、JavaSE等项目。2、添加依赖20.01.6.2com.google.guavaguava${guava.version}com.github.whvcseeasy-captcha${captcha.version}3、编写service层代码@ServicepublicclassCaptchaServiceImplimplementsCaptchaService{
1、easy-captcha简介
easy-captcha是生成图形验证码的Java类库,支持gif、中文、算术等类型,可用于Java Web、JavaSE等项目。

2、添加依赖
20.0 1.6.2 com.google.guava guava ${guava.version} com.github.whvcse easy-captcha ${captcha.version}
3、编写service层代码
@Service
public class CaptchaServiceImpl implements CaptchaService {
/**
* Local Cache 5分钟过期
*/
Cache localCache = CacheBuilder.newBuilder().maximumSize(1000).expireAfterAccess(5, TimeUnit.MINUTES).build();
@Override
public void create(HttpServletResponse response, String uuid) throws IOException {
response.setContentType("image/gif");
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
//生成验证码
SpecCaptcha captcha = new SpecCaptcha(150, 40);
captcha.setLen(5);
captcha.setCharType(Captcha.TYPE_DEFAULT);
captcha.out(response.getOutputStream());
//保存到缓存
setCache(uuid, captcha.text());
}
@Override
public boolean validate(String uuid, String code) {
//获取验证码
String captcha = getCache(uuid);
//效验成功
if(code.equalsIgnoreCase(captcha)){
return true;
}
return false;
}
private void setCache(String key, String value){
localCache.put(key, value);
}
private String getCache(String key){
String captcha = localCache.getIfPresent(key);
//删除验证码
if(captcha != null){
localCache.invalidate(key);
}
return captcha;
}
} 4、开发验证码接口
创建LoginController并提供生成验证码的方法
@Controller
@AllArgsConstructor
public class CaptchaController {
private CaptchaService captchaService;
@GetMapping("/captcha")
public void captcha(HttpServletResponse response, String uuid)throws IOException {
//uuid不能为空
AssertUtils.isBlank(uuid, ErrorCode.IDENTIFIER_NOT_NULL);
//生成验证码
captchaService.create(response, uuid);
}
}5、前端vue增加如何代码显示生成的验证码
完整的登录页代码如下
![]()
{{ title }}
![]()
登录
编译运行后端,同事运行点前端,可以看到登录页面。
作者最新文章
思源笔记
2026-09-16 17:42
在线PDF转TXT操作步骤与乱码排查指南
2026-09-04 13:02
PDF加水印后如何检查显示效果?在线工具操作步骤与避坑指南
2026-09-03 13:02
Xshell保持连接不断开及会话文件本地存储路径详解
2026-09-03 06:02
两个PDF怎么合并成一个?在线合并后怎么检查顺序?
2026-09-02 20:00
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多
Windows 10
Windows
Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。
极度公式
Windows/macOS/Linux
极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。
















