本文主要是在Spring Boot项目中加入登录的验证码验证,包看包会
话不多说,直接上代码
首先先创建一个spring boot项目,在pom.xml中导入依赖
//验证码依赖
<dependency>
<groupId>com.github.whvcse</groupId>
<artifactId>easy-captcha</artifactId>
<version>1.6.2</version>
</dependency>
//lombok
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
//json
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.66</version>
</dependency>
创建一个utlis工具包,在里面创建一个返回消息工具类
JsonResult
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
/**
* 用于封装AJAX调用以后的JSON返回值 其中正确返回值: {state:1, data:返回数据, errcode:错误码, errmsg:错误信息}
* 错误返回值: {state:0, data:null, errcode:错误码, errmsg:错误信息}
*/
@Getter
@Setter
public class JsonResult implements Serializable {
private static final long serialVersionUID = 1L;
public static final int SUCCESS = 1;
public static final int ERROR = 0;
/**
* 返回是否成功的状态, 1表示成功, 0表示失败
*/
private int state;
/**
* 成功时候,返回的JSON数据
*/
private Object data;
/**
* 是错误时候的错误消息
*/
private String errmsg;
/**
* 是错误时候的错误码
*/
private int errcode;
public JsonResult() {
state = SUCCESS;
}
public JsonResult(int state, Object data, String errmsg, int errcode) {
this.state = state;
this.data = data;
this.errmsg = errmsg;
this.errcode = errcode;
}
public JsonResult(String errMsg, int errcode) {
state = ERROR;
data = null;
this.errcode = errcode;
this.errmsg = errMsg;
}
public JsonResult(Object data) {
state = SUCCESS;
this.data = data;
}
}
创建一个controller包,创建一个CaptchaController控制类
import com.wf.captcha.utils.CaptchaUtil;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@Controller
//前端请求发生跨域错误,加入@CrossOrigin(origins = "*",maxAge = 3600)注解
@CrossOrigin(origins = "*",maxAge = 3600)
public class CaptchaController {
@RequestMapping("/captcha")
public void captcha(HttpServletRequest request, HttpServletResponse response) throws Exception {
CaptchaUtil.out(request, response);
}
}
创建一个登录控制类,LoginController
import com.example.captchatest.utils.JsonResult;
import com.wf.captcha.utils.CaptchaUtil;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
@RestController
public class LoginController {
@PostMapping("/login")
public JsonResult login(String username,String password,String verCode,HttpServletRequest request){
//模拟登录
if(username.equals("admin") && password.equals("123456")){
//对验证码进行验证
if (!CaptchaUtil.ver(verCode, request)) {
CaptchaUtil.clear(request); // 清除session中的验证码
return new JsonResult("验证码不正确");
}
}else {
return new JsonResult("账号或密码错误");
}
return new JsonResult("登录成功");
}
}
在static文件夹下创建我们的登录页面login.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="/login" method="post">
<h1>登录后台</h1>
<span> </span>
<input type="text" id="username" name="username" placeholder="账号" lay-verify="required|account"><br>
<input type="password" id="password" name="password" placeholder="密码" lay-verify="required|password"><br>
<input type="text" id="verCode" name="verCode" placeholder="verCode" lay-verify="required|account">
<img src="/captcha" width="130px" height="48px" alt=""><br>
<button type="submit" lay-filter="login" >登录</button>
</form>
</body>
</html>
整体的项目结构如下:
OK了,这样我们的验证码项目就搭建好了,直接启动项目去访问就可以了
运行结果是这样的
成功后返回的消息
页面没有做什么渲染,也是为了方便大家看清楚怎么使用,大家可以根据自己的需求来做修改
消息返回类也是随手复制的,可能不是很好,大家也可以根据自己的需求来做修改
该验证码更详细的使用方法,请到gitee里面查看
https://gitee.com/ele-admin/EasyCaptcha?_from=gitee_search#easycaptchahttps://gitee.com/ele-admin/EasyCaptcha?_from=gitee_search#easycaptcha如果文章对你有帮助,记得点点赞哟