欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > java >内容正文

java

Java笔记-EasyCaptcha在前后端分离项目的使用

发布时间:2025/3/15 java 32 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Java笔记-EasyCaptcha在前后端分离项目的使用 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

官方地址:

https://github.com/whvcse/EasyCaptcha

在此膜拜下。

官方上已经有了非常详细的说明,下面我做个笔记,方便以后进行查阅,毕竟少花几分钟上手,可以多看几分钟的新东西。

添加Maven

<dependency><groupId>com.github.whvcse</groupId><artifactId>easy-captcha</artifactId><version>1.6.2</version> </dependency>

获取验证码的后端代码:

@GetMapping("/TestCaptcha") public Object getTestCaptcha(){SpecCaptcha specCaptcha = new SpecCaptcha(130, 48, 5);String verCode = specCaptcha.text().toLowerCase();String key = UUID.randomUUID().toString();redisTemplate.opsForValue().set(key, verCode, 60 * 1, TimeUnit.SECONDS);Map<String, String> ret = new HashMap<>();ret.put("key", key);ret.put("image", specCaptcha.toBase64());return ResultVo.success("success", ret); }

逻辑:

①SpecCaptcha类生成验证码;

②将生产的key和verCode使用redisTemplate放到redis中;

前端代码:

代码如下:

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Title</title><script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script> </head> <body><img id="verImg" width="130px" height="48px"/><script>var verKey;// 获取验证码$.get('http://127.0.0.1:19000/TestCaptcha', function(res) {verKey = res.key;$('#verImg').attr('src', res.data.image);},'json');console.log(verKey) </script></body> </html>

对应的请求:

 将这个值设置给html的image就可以正常显示了。

 这个key,就是redis里面的key。登录的时候要把这个带上。

登录验证相关的代码:

@PostMapping("/login") public Object login(@RequestBody String request){Map<String, Object> userMap = JSONObject.parseObject(request);if(!userMap.containsKey("verKey") || !userMap.containsKey("verCode")){return ResultVo.error("格式有误");}//先查验证码String rightValue = redisTemplate.opsForValue().get(userMap.get("verKey")).toString();if(rightValue == null || !rightValue.equals(userMap.get("verCode").toString().toLowerCase())){return ResultVo.error("验证码无效");}............ }

 

总结

以上是生活随笔为你收集整理的Java笔记-EasyCaptcha在前后端分离项目的使用的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。