SpringBoot项目中使用hutool生成图片验证码,并返回给前端
时间: 2024-06-09 19:08:41 浏览: 121
好的,可以按照以下步骤操作:
1. 在 Spring Boot 项目中添加 Hutool 依赖,可以在 pom.xml 文件中添加以下代码:
```xml
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.7.6</version>
</dependency>
```
2. 创建 Controller 类,添加生成验证码的接口方法:
```java
@RestController
public class CaptchaController {
@GetMapping("/captcha")
public void captcha(HttpServletRequest request, HttpServletResponse response) throws IOException {
// 生成验证码
LineCaptcha captcha = CaptchaUtil.createLineCaptcha(200, 100);
// 将验证码存入 session
request.getSession().setAttribute("captcha", captcha.getCode());
// 设置响应头信息
response.setContentType("image/png");
response.setHeader("Pragma", "no-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
// 将验证码图片写入响应输出流
captcha.write(response.getOutputStream());
}
}
```
3. 前端页面通过访问 /captcha 接口获取验证码图片,可以使用 img 标签显示验证码图片,示例代码如下:
```html
<img src="/captcha" onclick="this.src='/captcha?'+Math.random()">
```
点击图片时可以刷新验证码。
4. 在登录时验证用户输入的验证码是否正确,可以在 Controller 中添加验证接口方法:
```java
@PostMapping("/login")
public String login(String username, String password, String captcha, HttpSession session) {
// 验证验证码是否正确
String captchaCode = (String) session.getAttribute("captcha");
if (!captcha.equals(captchaCode)) {
return "验证码错误";
}
// 验证用户名和密码是否正确
// ...
}
```
以上就是使用 Hutool 生成图片验证码并返回给前端的步骤。
阅读全文