目录
1. 功能展示
2. 前段代码
3. 后端代码
在登录页面添加验证码登录
1. 检测到没有输入验证码或者输入的验证码错误时,进行弹窗提示.并且刷新当前验证码图片
2. 点击验证码进行刷新
1. 添加验证码标签,在密码的下面,在login.html进行修改
主要改动如下:
2. 在提交的函数中加入验证码的信息
3. 构造Ajax请求的时候,将验证码也插入到后端,并且判断后端的返回值,当code为-1的时候,表示验证码输入错误.
完整的login.html 如下所示:
登陆页面
登 录
用户名
密 码
验证码
我们使用hutool框架进行实现后端验证码的构造
1. 在pom.xml引入hutool的环境依赖
cn.hutool
hutool-all
5.1.0
2. 在Usercontroller.java 中进行添加代码
先实例化LineCaptcha对象,用来获取验证码,同时获取日志对象,在控制台打印验证码日志.
在usercontroller中添加下述代码,用来产生随机数字验证码
/**
* 生成验证码
* @param response
*/
@RequestMapping("/captcha")
public void captcha(HttpServletResponse response) {
// 随机生成 4 位验证码
RandomGenerator randomGenerator = new RandomGenerator("0123456789", 4);
// 定义图片的显示大小
lineCaptcha = CaptchaUtil.createLineCaptcha(100, 30);
response.setContentType("image/jpeg");
response.setHeader("Pragma", "No-cache");
try {
// 调用父类的 setGenerator() 方法,设置验证码的类型
lineCaptcha.setGenerator(randomGenerator);
// 输出到页面
lineCaptcha.write(response.getOutputStream());
// 打印日志
logger.info("生成的验证码:{}", lineCaptcha.getCode());
// 关闭流
response.getOutputStream().close();
} catch (IOException e) {
e.printStackTrace();
}
}
3. 登录中添加验证码的验证