springboot登录验证码
时间: 2023-07-09 10:42:23 浏览: 248
在 Spring Boot 中,可以使用 Kaptcha 库来生成验证码。首先,需要在 pom.xml 文件中添加以下依赖:
```xml
<dependency>
<groupId>com.google.code.kaptcha</groupId>
<artifactId>kaptcha</artifactId>
<version>2.3.2</version>
</dependency>
```
然后,在 application.properties 文件中添加以下配置:
```properties
# Kaptcha 验证码配置
kaptcha.border=yes
kaptcha.border.color=105,179,90
kaptcha.textproducer.font.color=blue
kaptcha.image.width=125
kaptcha.image.height=45
kaptcha.textproducer.font.size=30
kaptcha.session.key=code
kaptcha.textproducer.char.length=4
kaptcha.textproducer.font.names=宋体,楷体,微软雅黑
```
接下来,在登录页面中添加验证码输入框和验证码图片展示:
```html
<div class="form-group">
<label for="captcha">验证码:</label>
<input type="text" class="form-control" id="captcha" name="captcha" required>
</div>
<div class="form-group">
<img src="/captcha.jpg" alt="验证码" onclick="this.src='/captcha.jpg?'+Math.random()">
</div>
```
最后,在登录接口中校验验证码是否正确即可:
```java
@RequestMapping(value = "/login", method = RequestMethod.POST)
public String login(String username, String password, String captcha, HttpSession session) {
String kaptcha = (String) session.getAttribute("code");
if (!captcha.equalsIgnoreCase(kaptcha)) {
return "redirect:/login?error";
}
// TODO: 校验用户名和密码
return "redirect:/home";
}
```
需要注意的是,验证码的生成、存储和校验需要和 session 结合起来,以确保安全性。
阅读全文