blade增加验证码功能

亡羊补牛
亡羊补牛 2019-05-15 16:35
阅读需:0

今天看群里有人问如何增加验证码,这不是给翼总挖坑吗,其实用了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仓库,地址:

https://gitee.com/596392912/mica/tree/master

评论
  • 单调路过
    2019-05-16 09:34
    及时雨 正找呢
    5 回复
  • admin
    2019-05-15 21:28
    春哥牛皮!bladex基于mica全面定制,想了解原版的可以看一下:https://gitee.com/596392912/mica
    1 回复
  • 如梦技术
    2019-05-15 19:49
    bladex 的 redis 插件是可以直接 使用 # 号分割 超时时间的,可以更加人性话,另外cookie 和 cachename 可以配置在 yml 里
    1 回复1