[本篇为本人多年前的笔记,现搬运到CSDN,其中可能部分代码或解释引用自网络,时间间隔太远,无法标明出处,如有雷同,敬请谅解]
导入
<dependency>
<groupId>com.github.aqiu202</groupId>
<artifactId>captcha-spring-boot-starter</artifactId>
<version>1.2.0</version>
</dependency>
yml配置
captcha:
height: 40 #图片高度
width: 100 #图片宽度
has-border: true #设置图片为有边框
noise: #噪化方式先阴影,再添加曲线,再扭曲变形最后添加噪点
styles:
- SHADOW
- LINE
- SHEAR
- POINT
控制层获取图形验证码
@Autowired
private CaptchaProducer producer;
/**
* 获取图形验证码
**/
@ResponseBody
@GetMapping("/verify-code/code")
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
/*随机生成验证码*/
String text = this.producer.createText();
/*将验证码放到session中*/
req.getSession().setAttribute("CODE", text);
/*写入到浏览器中*/
this.producer.writeToResponse(text, resp);
}
前端获取图形验证码
<img onclick="changeCode(this)" id="codeJPG" name="yzm"
src="/verify-code/code" style="cursor:pointer;" />
<script>
function changeCode(obj) {
obj.src = "/verify-code/code?" + Math.random();
}
</script>