Spring Boot 配置Kaptcha(谷歌验证码工具)(生成验证码、验证验证码)
1 Kaptcha
1.1 Kaptcha简介
Kaptcha 是一个扩展自simplecaptcha的验证码库,默认情况下,Kaptcha非常易于设置和使用,并且默认输出会产生一个很难验证的验证码。默认情况下,它生成的验证码看起来与上面的非常相似。如果您想更改输出的外观,则有几个配置选项,并且该框架是模块化的,因此您可以编写自己的变形代码。
1.2 Kaptcha详细配置表
Kaptcha常用属性 | |||
---|---|---|---|
序号 | 属性名 | 描述 | 示例 |
1 | kaptcha.width | 验证码宽度 | 200 |
2 | kaptcha.height | 验证码高度 | 50 |
Kaptcha border(边框)属性 | |||
序号 | 属性名 | 描述 | 示例 |
1 | kaptcha.border.enabled | 是否显示边框 | true |
2 | kaptcha.border.color | 边框颜色 | black |
3 | kaptcha.border.thickness | 边框厚度 | 2 |
Kaptcha content(文本)属性 | |||
序号 | 属性名 | 描述 | 示例 |
1 | kaptcha.content.length | 验证码文本长度 | 5 |
2 | kaptcha.content.source | 文本源 | abcde2345678gfynmnpwx |
3 | kaptcha.content.space | 文本间隔 | 2 |
Kaptcha font(字体)属性 | |||
序号 | 属性名 | 描述 | 示例 |
1 | kaptcha.font.name | 字体名称 | Arial |
2 | kaptcha.font.size | 字体大小 | 40 |
3 | kaptcha.font.color | 字体颜色 | black |
Kaptcha background-color(背景颜色)属性 | |||
序号 | 属性名 | 描述 | 示例 |
1 | kaptcha.background-color.from | 背景颜色(开始渐变色) | lightGray |
2 | kaptcha.background-color.to | 背景颜色(结束渐变色) | white |
2 Maven依赖
<!-- 验证码 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>kaptcha-spring-boot-starter</artifactId>
<version>1.1.0</version>
</dependency>
3 Spring Boot配置
#验证码宽度
kaptcha.width=200
#验证码高度
kaptcha.height=50
#验证码内容长度
kaptcha.content.length=4
#验证码内容源
kaptcha.content.source=ABCDEFGHIJKLMNOPQRSTUVWXYZ2345678923456789
#验证码内容间隔
kaptcha.content.space=2
#验证码字体名称
kaptcha.font.name=Arial
#验证码字体大小
kaptcha.font.size=40
#验证码字体颜色
kaptcha.font.color=black
#验证码背景颜色(开始颜色)
kaptcha.background-color.from=lightGray
#验证码背景颜色(结束颜色)
kaptcha.background-color.to=white
#验证码是否显示边框
kaptcha.border.enabled=true
#验证码边框颜色
kaptcha.border.color=black
#验证码边框厚度
kaptcha.border.thickness=1
4 调试代码
package com.controller;
import com.baomidou.kaptcha.Kaptcha;
import com.baomidou.kaptcha.exception.KaptchaIncorrectException;
import com.baomidou.kaptcha.exception.KaptchaNotFoundException;
import com.baomidou.kaptcha.exception.KaptchaTimeoutException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class KaptchaController {
@Autowired
private Kaptcha kaptcha;
/**
* 获取Kaptcha验证码
*/
@GetMapping("/getKaptchaImg")
public void getKaptchaImg() {
//默认900秒
kaptcha.render();
}
/**
* 验证验证码
*
* @param code 验证码
* @return
*/
@GetMapping("/validCode")
public String validCode(@RequestParam String code) {
try {
kaptcha.validate(code);
} catch (Exception e) {
if (e instanceof KaptchaIncorrectException) {
return "验证码不正确";
} else if (e instanceof KaptchaNotFoundException) {
return "验证码未找到";
} else if (e instanceof KaptchaTimeoutException) {
return "验证码过期";
} else {
return "验证码渲染失败";
}
}
return "验证通过";
}
}
5 调试结果
5.1 生成验证码
5.2 验证验证码
5.2.1 验证通过
5.2.2 验证码不存在
还没有评论,来说两句吧...