1. 程式人生 > >Java實現有效時間簡訊驗證碼

Java實現有效時間簡訊驗證碼

上週由於其他的工作繁忙,都沒時間來寫部落格,這不一有時間,就馬上來寫最近實現的性功能了。 這篇主要講的是怎麼讓簡訊驗證碼具有時效性,我手上的專案要求的時效性是5分鐘,那麼話不多說,我就開始碼程式碼了~這裡主要還用到了第三方的簡訊介面,互億無線簡訊平臺。www.ihuyi.com

實現步驟:(springmvc)

1、controller中,獲取session物件,取code,取不到新生成,並存儲session中;

2、單手機號傳送量,判斷並+1記入資料庫;

3、Timer定時器,設定新執行緒延時執行TimerTask任務(刪除code)

@RequestMapping(value="sendMessage",method=RequestMethod.GET)
 
  publicObjectsendMessage(finalHttpServletRequestrequest){
 
  Stringphone=request.getParameter("phone");
 
  inttimes=userService.messageSendToday(phone);//二次驗證,單個手機號每日傳送上限
 
  if(times<=MAX_PER_DAY){
 
  StringcheckCode=GenerateRandomCode.createRandomNumber(6);
 
  finalHttpSessionhttpSession=request.getSession();
 
  httpSession.setAttribute("checkCode",checkCode);
 
  CheckCodeMessagecheckCodeMessage=newCheckCodeMessage(phone,checkCode);
 
  try{
 
  HttpSender.batchSend(checkCodeMessage);
 
  //TimerTask實現5分鐘後從session中刪除checkCode
 
  finalTimertimer=newTimer();
 
  timer.schedule(newTimerTask(){
 
  @Override
 
  publicvoidrun(){
 
  httpSession.removeAttribute("checkCode");
 
  System.out.println("checkCode刪除成功");
 
  timer.cancel();
 
  }
 
  },5*60*1000);
 
  }catch(Exceptione){
 
  e.printStackTrace();
 
  }
 
  return"redirect:/index.jsp";
 
  }
 
  }

希望以上對大家在接入簡訊驗證碼這個問題上,有所幫助,謝謝!