Stringkey=UUID.randomUUID().toString();// 模拟放入到redis中,真实业务需要设置验证码过期时间REDIS.put(key,captcha);// 获取生成验证码的base64字符串Stringbase64=arithmeticCaptcha.toBase64();map.put("captchaKey",key);map.put("captchaBase64",base64);// 为了演示简单,我使用response对象生成在前端显...
*/@GetMapping("/captchaImage")publicAjaxResultgetCode(HttpServletResponse response)throwsIOException{// 保存验证码信息Stringuuid=IdUtils.simpleUUID();StringverifyKey=Constants.CAPTCHA_CODE_KEY + uuid;// 存入redis的键值StringcapStr=null, code =null;BufferedImageimage=null;//验证码EasyCaptcha工具Captcha...
public JsonResult login(String username,String password,String verCode,String verKey){ // 获取redis中的验证码 String redisCode = redisUtil.get(verKey); // 判断验证码 if (verCode==null || !redisCode.equals(verCode.trim().toLowerCase())) { return JsonResult.error("验证码不正确"); } } ...
// 将结果和过期时间存起来,并设置过期时间redisUtils.set(uuid,result,expiration,TimeUnit.MINUTES);// 使用map或者对象存储验证码信息,并返回给前端Map<String,Object>imgResult=newHashMap<String,Object>(2){{put("img",captcha.toBase64());put("uuid",uuid);}};returnResponseEntity.ok(imgResult);}...
</dependency> 实现原理: 提供生成验证码的api、校验功能api 。前端通过生成验证码的api 获取验证码,同时将验证码以 key -value 保存在 redis 中。value 即验证码内容,key 使用 session 的 id https://blog.csdn.net/weixin_41722928/article/details/102610566...
();// 存入redis并设置过期时间为30分钟redisUtil.setEx(key, verCode,30, TimeUnit.MINUTES);// 将key和base64返回给前端returnJsonResult.ok().put("key", key).put("image", specCaptcha.toBase64()); }@ResponseBody@PostMapping("/login")publicJsonResultlogin(String username,String password,String...
//放入redis并设置过期时间 redisUtil.set(captchaKey, captchaValue, Constants.VERIFYCODE_EXPIRETIME * 60); final CaptchaResult captchaResult = new CaptchaResult(); captchaResult.setCaptchaKey(uuid); captchaResult.setImg(captcha.toBase64());
5.6.前后端分离项目的使用 分离项目建议不要存储在session中,存储在redis中。
分离项目建议不要存储在session中,存储在redis中。5.自定义效果参考源代码中的SpecCaptcha和GifCaptcha继承Captcha即可。About Java图形验证码,支持gif验证码,可用于Java Web、JavaSE项目。 Resources Readme License Apache-2.0 license Activity Stars 0 stars Watchers 2 watching Forks 0 forks ...
{"ConnectionStrings": {// 使用Redis缓存时,需要配置此项// 使用格式参考 Microsoft.Extensions.Caching.StackExchangeRedis"RedisCache":"localhost,password=Aa123456."},"CaptchaOptions": {"CaptchaType":5,// 验证码类型"CodeLength":4,// 验证码长度, 要放在CaptchaType设置后 当类型为算术表达式时,长度代表...