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";

  }

  }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM