登录
用户输入手机号,调用登录接口,根据手机号查询是否存在该用户

@PostMapping("/login") public Boolean login(@RequestBody String phone) { //从数据库查询该手机号的用户 User user = userInfoDao.selectUser(phone); //若不存在该用户返回false,存在返回true return user == null ? false : true; }
确认用户存在后就可以调用发送验证码接口,再校验验证码是否正确

/** * 发送验证码: * 在redis中用hash存储用户的相关信息,用PHONE_NUM+手机号作为用户hash的key, * “code”作为用户信息hash中验证码的小key,查询redis中用户的验证码信息, * "num"是验证次数的小key */ @PostMapping("/sendCaptcha") public String sendCaptcha(String phone){ //验证码verCode String verCode; String key = "PHONE_NUM"+phone; //如果redis中有缓存的验证码 Object object = redisTemplate.opsForHash().get(key, "code"); if(null != object){ throw Error("该用户验证码已发送,且未过期,请输入验证码登录或注册!"); }else { Random r = new Random(System.currentTimeMillis()); int low = 100000; int high = 999999; //根据时间随机生成验证码verCode,将其放入redis中 int code = (r.nextInt(high - low) + low); verCode = String.valueOf(code); redisTemplate.opsForHash().put(key,"code",verCode); //放入检验次数num=5 redisTemplate.opsForHash().put(key,"num",5); //设置过期时间

最低0.47元/天 解锁文章
3506

被折叠的 条评论
为什么被折叠?



