手机验证码 有效期十分钟 怎么做
时间: 2023-11-18 20:54:33 浏览: 220
实现手机验证码有效期十分钟的方法可以使用Redis来实现。具体实现方法如下:
1. 在发送短信之后使用Redis的incr设置一个递增的KEY(根据自己的需要设定但是要保证每一个人的唯一),来判断该KEY的数值,如果等于1说明这是第一次请求,发送短信记录日志,并设置有效期,如果不等于的话说明是间隔时间内多次请求,就提示请求频繁,稍后重试。
2. 设置有效期为十分钟,即在Redis中设置该KEY的有效期为600秒。
3. 在验证短信验证码时,从Redis中获取该KEY的值,如果值存在且等于1,则说明验证码有效,否则说明验证码已失效或者错误。
具体实现代码如下:
```
String redisKey = "SMS_SEND_" + smsPhone;
long count = redisTemplate.opsForValue().increment(redisKey, 1);
if (count == 1) {
//设置有效期十分钟
redisTemplate.expire(redisKey, 600, TimeUnit.SECONDS);
}
if (count > 1) {
resultMap.put("retCode", "-1");
resultMap.put("retMsg", "每十分钟只能发送一次短信");
outPrintJson(resultMap);
return;
}
/** 发送短信 */
......
/** 记录发送日志 */
......
```
阅读全文