图形验证码实现方法:
- 引入hutool工具类:
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.10</version>
</dependency>
- 通过工具类生成base64,
LineCaptcha lineCaptcha = CaptchaUtil.createLineCaptcha(300, 192, 5, 1000); //参数依次为 图片长、图片高、验证码个数、最后一个可以说是图片密度吧
String code = lineCaptcha.getCode(); //code为验证码
redis配置:
- 首先引入
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson</artifactId>
<version>3.26.0</version>
</dependency>
- 在 application.yml文件中进行配置redis
redis:
database: 0
port: 6379
lettuce:
pool:
#连接池中最大空闲连接数为 30。这意味着连接池可以保持最多 30 个空闲的 Redis 连接,以便在需要时重用。
max-idle: 30
#连接池中最小空闲连接数为 10。这表示连接池至少会保持 10 个空闲连接,以便在需要时快速获取可用连接。
min-idle: 10
#连接池中的最大活动连接数为 30。这是指连接池在同一时间可以支持的最大活动(使用中)连接数量。
max-active: 30
#当连接池已用尽且达到最大活动连接数时,从连接池获取连接的最大等待时间为 10,000 毫秒(10 秒)。如果在等待时间内没有可用连接,将抛出连接超时异常。
max-wait: 10000
# 应用程序关闭时Lettuce 将等待最多 3 秒钟来完成关闭操作。如果超过这个时间仍未完成,则会强制关闭连接。
shutdown-timeout: 3000
host: 127.0.0.1
sys:
#是否开启redisTemplate配置(默认关闭)
redis-template-config: true
#是否开启restTemplate配置(默认关闭)
rest-template-config: true
#是否开启json配置(默认关闭)
json-config: true
- 将数据存储在redis中
redisTemplate.opsForValue().set(RedisKeyConstant.GRAPHIC_VERIFICATION_CODE + form.getClentId(),
code,15, TimeUnit.MINUTES);
// 参数依次为 key、验证码、15分钟、时间单位(分钟)
我是用的是redisInsight ,通过swagger文档生成了图片验证码,如图:
通过反编译得到的图片为:
就这么简单!!!!!!
每天学一点 加油