// 生成 4位随机数
Random random = new Random();
int codeUser = random.nextInt(9000)+1000;
// 转为String类型 这个就是转过的验证码
String codeCode = String.valueOf(codeUser);
System.out.println(codeCode );
// 我用的阿里云里面的短信API接口 调用短信接口
MsgUitl.sendMsg(phone,codeCode);
这个阿里云短信接口 去阿里云官网找 API 短信三方接口 里面有使用教程
这个是那个短信调用工具 我用的国阳云的
这张图里面的mqFeign是我用的Rabbitmq发的短信 不是短信工具
if (redisTemplate.hasKey(phone)){
return Result.error("1分钟只能发送一次");
}
// 发送短信
mqFeign.sendCode(userRequest);
// 1分钟只能发送一次 存手机号为键 值为验证码 1分钟 时间为1分钟
redisTemplate.opsForValue().set(phone,code,1,TimeUnit.MINUTES);
return Result.success(code,"发送成功"+code);
看看控制台
看一下效果 前台我用的是 vue2
打开redis客户端 你存入的键是手机号 值是验证码 (随机生成的那个四位数)
再次点击发送
过一分钟再发redis 里面没有了:
再次看看效果
再看redis
登录三次失败 冻结5分钟 先定义一个 count来计数
相同的使用redis 存入一个键 5分钟 当登录失败次数达到3的时候存 入 判断如果有这个键 那么就让它返回 return