使用AJ-Captcha出现的验证码失效的问题记录

文章讲述了在业务中台使用AJ-Captcha时遇到滑块验证码在不同环境(本地、开发、测试)失效的问题,通过排查发现分布式部署下内存缓存可能导致信息不同步,最终解决方法是将验证码缓存迁移到Redis。作者建议在分布式应用中自定义CaptchaCacheService,如使用Redis以保证一致性。

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

在业务中台使用AJ-Captcha组件做滑块验证码校验功能的时候,本地环境和开发环境部署程序出现滑块验证码失效问题
在这里插入图片描述

初步判断以为是传入的校验参数不对,但修改代码后,在本地及开发环境测试了校验功能正常,但测试环境依然存在同样异常,

再次排查推测可能是服务器或者容器时间存在异常,但同步容器时间后,问题再次出现,

查询AJ-Captcha官方文档发现有这样一段描述
在这里插入图片描述

遂改造程序中验证码生成后的保存位置从本地内存到redis中
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结:对于分布式部署的应用,建议应用自己实现CaptchaCacheService,比如用Redis,参考service/spring-boot代码示例。
如果应用是单点的,也没有使用redis,那默认使用内存。
内存缓存只适合单节点部署的应用,否则验证码生产与验证在节点之间信息不同步,导致失败。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值