本文只讲解如何实现验证过期,不涉及短信发送的其他业务。
实现思路如下:
在发送短信的时候将当前时间记录和发送的手机号都保存进session中,在需要用户发送验证码的时候校验时间是否超时,超时则回复前端“短信验证超时,请重新获取验证码”之类的提示。
代码如下:
1.发送短信时保存发送时间
/***
* 发送短信(单个手机号)
* @return
*/
@RequestMapping("/sendShortMessageOne")
@ResponseBody
public Map<String,Object> sendShortMessage(HttpServletRequest request,HttpServletResponse resp) {
Map<String,Object> map = new HashMap<String,Object>();
//获取手机号码
String phone = request.getParameter("phone");
if(phone == null){
map.put("success", false);
map.put("msg", "获取手机号失败");
return map;
}
HttpSession session = request.getSession();
//校验上次发送短信的时间,判断是否能再次发送短信
Boolean isSend = smsService.checkSendShortMessageOne(phone, session);
if(!isSend){ //不能发送
map.put("success", false);
map.put("msg", "规定时间内不能重复获取验证码");</