0
点赞
收藏
分享

微信扫一扫

Spring Boot 最简单的验证码生成加验证

guanguans 2022-04-13 阅读 59
spring boot

本文主要是在Spring Boot项目中加入登录的验证码验证,包看包会

话不多说,直接上代码

首先先创建一个spring boot项目,在pom.xml中导入依赖

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        //验证码依赖
        <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>&nbsp;</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#easycaptchaicon-default.png?t=M276https://gitee.com/ele-admin/EasyCaptcha?_from=gitee_search#easycaptcha如果文章对你有帮助,记得点点赞哟

举报

相关推荐

0 条评论