EasyCaptcha实现图片验证码
一级目录
二级目录
三级目录
1、Java项目导入Maven依赖
<dependencies>
<dependency>
<groupId>com.github.whvcse</groupId>
<artifactId>easy-captcha</artifactId>
<version>1.6.2</version>
</dependency>
</dependencies>
2、编写controller层
//获取图形验证码,Base64编码传递给前端,由前端编译
@GetMapping("login/captcha")
public Result<CaptchaVo> getCaptcha() {
return loginService.captcha();
}
3、编写Service层
/**
* 获取图形验证码
* @return
*/
@Override
public Result<CaptchaVo> captcha() {
//设置图形验证码的长宽高
SpecCaptcha specCaptcha = new SpecCaptcha(130, 48, 5);
//设置图形验证码的字符类型
specCaptcha.setCharType(SpecCaptcha.TYPE_DEFAULT);
//生成一个ID,存于redis,方便登录时校验
String key = RedisConstant.ADMIN_LOGIN_PREFIX + UUID.randomUUID();
//转换为小写,统一大小写方便登录校验
String value = specCaptcha.text().toLowerCase();
return Result.ok(new CaptchaVo(specCaptcha.toBase64(), key));
}
此刻生成验证码接口即搞定,只需要前端调用接口,会将图形验证码生成的编码传递给前端,只需前端编译即可生成验证码图片。
图片验证码的字符类型有以下几种:
TYPE_DEFAULT 数字和字母混合
TYPE_ONLY_NUMBER 纯数字
TYPE_ONLY_CHAR 纯字母
TYPE_ONLY_UPPER 纯大写字母
TYPE_ONLY_LOWER 纯小写字母
TYPE_NUM_AND_UPPER 数字和大写字母
使用方法:
SpecCaptcha captcha = new SpecCaptcha(130, 48, 5); //设置长宽高
captcha.setCharType(Captcha.TYPE_ONLY_NUMBER); //设置验证码字符类型
更多使用方法可以看官方文档:https://gitee.com/ele-admin/EasyCaptcha.git