蒙阴做网站,栗田工业大连有效公司网站哪年做的,wordpress链接尾缀,做商业网站接口文档#xff1a; 从接口文档中可以得知的信息#xff1a;
代码的返回格式为json格式#xff0c;可以将Controlller换为RestController前端发起的请求为Get请求#xff0c;使用注解GetMapping通过返回的数据类型#xff0c;定义一个返回类型Result
package com.qcby.…接口文档 从接口文档中可以得知的信息
代码的返回格式为json格式可以将Controlller换为RestController前端发起的请求为Get请求使用注解GetMapping通过返回的数据类型定义一个返回类型Result
package com.qcby.community.utils;import java.util.HashMap;public class Result extends HashMapString,Object {public static Result ok(){Result result new Result();result.put(code, 200);result.put(msg, 操作成功);return result;}public static Result error(String msg){Result result new Result();result.put(code, 500);result.put(msg, msg);return result;}Overridepublic Result put(String key, Object value) {super.put(key, value);return this;}
}调用ok()方法,该方法初始化result对象并且已经提供code属性和msg属性的值因此只需要设置需要返回的data属性即可
基本的方法框架如上接下来就可以实现生成验证码的操作了 前端的调用流程
export function getCaptchaImg() {return request({url: /captcha,method: get})
}
getCaptchaImg 函数是一个简单的 HTTP 请求封装用于获取验证码相关信息其核心是调用 request 函数发送 GET 请求
后端调用 SpecCaptcha 使用验证码的逻辑 1 。new SpecCaptcha对象传入验证码的大小 2 。将验证码转换为base64 3。生成一个唯一的id (为了验证的时候能后对应上) 4.。将验证码id和base64的验证码图片返回给前端 5 。将验证码的值captcha.text().toLowerCase() 和id以键值对的形式存入缓存 验证码验证 1。获取前端传入用户输入的验证码和验证码的id, 2。将验证码进行大小写转换 3。通过id去缓存获取验证码 然后和传入的验证码进行比较即可 Controller层的方法
GetMapping(/captcha)public Result getCaptcha(){//1.利用工具类产生验证码图片SpecCaptcha specCaptcha new SpecCaptcha(130, 48, 4);//获取验证码图片中的验证码String code specCaptcha.text().toLowerCase();//生成验证码对应的唯一UUIDString uuid IdUtil.simpleUUID();//2.获取验证码的值//3.用redis存储验证码并设置失效时间//存入redis并设置过期时间为2分钟 TimeUnit.SECONDS 时间单位为秒this.redisTemplate.opsForValue().set(uuid, code, 120, TimeUnit.SECONDS);//4.将数据返回给前端MapString, String map new HashMapString, String(3);map.put(uuid, uuid);map.put(code, code);map.put(captcha, specCaptcha.toBase64());return Result.ok().put(data, map);}
1.生成验证码的操作需要导入依赖
dependencygroupIdcom.github.whvcse/groupIdartifactIdeasy-captcha/artifactIdversion${captcha.version}/version/dependency
2.并在配置文件当中配置redis属性因为要存储在redis中
redis:port: 6379host: 127.0.0.1database: 0open: true
通过Debugger操作执行代码
设置断点 执行方法前验证码无法加载 redis数据库中没有保存数据 通过以下代码生成验证码图片
SpecCaptcha specCaptcha new SpecCaptcha(130, 48, 4);
获取验证码图片上的文字将验证码的字母转小写
给验证码生成唯一的UUID
String code specCaptcha.text().toLowerCase();String uuid IdUtil.simpleUUID();
生成之后根据redis的配置将数据保存到 0号数据库中 将验证码的信息封装在data中返回给前台验证码成功显示 验证码生成的过程