今天看群里有人问如何增加验证码,这不是给翼总挖坑吗,其实用了mica腰不疼了,腿也不酸了,实现验证码功能简单的不能再简单了,mica官网文档地址:
https://www.dreamlu.net/docs/captcha.html
来吧,没代码没真相:
1、maven引入依赖,最新版本 1.01
net.dreamlu
mica-captcha
1.0.1
2、新建个Controller,注入
MicaCaptchaServlet
@Autowired
private MicaCaptchaServlet micaCaptcha;
3、写一个获取验证码和一个校验验证码的类,我是在开放api接口的配置文件中为了少打几下键盘,用的一个访问路径:
/**
* 图形验证码
*/
@GetMapping(value = "captcha.jpg", produces = MediaType.IMAGE_JPEG_VALUE)
@ResponseBody
public ResponseEntity captcha(HttpServletResponse response) {
//设置cookie和redi缓存,默认是 mica
micaCaptcha.setCookieName("blade-Captcha");
micaCaptcha.setCacheName("blade-Captcha");
return micaCaptcha.generate(response);
}
/**
* 校验图形验证码
*/
@PostMapping(value = "/captcha.jpg")
@ResponseBody
public R captcha(HttpServletResponse response, String captcha) {
boolean validated = micaCaptcha.validate(response, captcha);
return R.data(validated);
}
4、开放api对外访问,既然验证码,肯定不需要授权访问,添加最下面这行,
public SecureRegistry secureRegistry() {
SecureRegistry secureRegistry = new SecureRegistry();
secureRegistry.excludePathPatterns("/wechat/**");
secureRegistry.excludePathPatterns("/captcha.jpg");
到这里,你的验证码就可以了,
Cookie:
redis:
postnam:
POST校验:
校验之后,redis缓存会被删除,保证验证码只使用一次,接下来随便你怎么使用了,设置验证码详细参数,请关注卢总官方mica仓库,地址:
扫一扫访问 Blade技术社区 移动端