mica 中验证码扩展 mica-captcha 验证码组件

介绍了一种既安全又美观的验证码实现方案,支持多种使用方式,并详细解释了如何通过mica-captcha库进行配置、生成及验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

验证码效果

保证了验证码的安全性的同时尽量做到了美观,欢迎试用,更多使用方式可以查看 mica 示例项目

依赖坐标

Maven

<dependency>
    <groupId>net.dreamlu</groupId>
    <artifactId>mica-captcha</artifactId>
</dependency>

Gradle

implementation "net.dreamlu:mica-captcha"

配置项

配置项默认值说明
mica.captcha.cache-namemicaCaptchaCache验证码cache名,默认:micaCaptchaCache
mica.captcha.cookie-namemica-captcha验证码cookie名,默认:mica-captcha
mica.captcha.enabledtrue是否开启验证码,默认:true.

注意:结合 mica-pro 的 mica-cache-redis 组件实现 cache name 使用 # 号自动配置超时时间。

使用

首先需要配置 Spring cache,如 ehcache、redis等,然后给 micaCaptchaCache 配置一个超时时间。

Servlet

  • 生成验证码
@Autowired
private MicaCaptchaServlet micaCaptcha;
/**
 * 图形验证码
 */
@GetMapping(value = "/captcha.jpg", produces = MediaType.IMAGE_JPEG_VALUE)
@ResponseBody
public ResponseEntity<Resource> captcha(HttpServletResponse response) {
    return micaCaptcha.generate(response);
}
  • 校验验证码
boolean validated = micaCaptcha.validate(response, userInputCaptcha);

WebFlux

  • 生成验证码
@Autowired
private MicaCaptchaReactive micaCaptcha;
/**
 * 图形验证码
 */
@GetMapping(value = "/captcha.jpg", produces = MediaType.IMAGE_JPEG_VALUE)
@ResponseBody
public Mono<ResponseEntity<Resource>> captcha(ServerWebExchange exchange) {
    return Mono.just(micaCaptcha.generate(exchange));
}
  • 校验验证码
boolean validated = micaCaptcha.validate(exchange, userInputCaptcha);

生成其他类型验证码

  • micaCaptcha.generateBase64 生成 base64 图片验证码(主要为 App 或者前后端分离设计)。
  • micaCaptcha.validateBase64 校验 base64 图片验证码。

开源推荐

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值