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

本文主要是在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>&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#easycaptchahttps://gitee.com/ele-admin/EasyCaptcha?_from=gitee_search#easycaptcha如果文章对你有帮助,记得点点赞哟

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值