Java實現有效時間簡訊驗證碼
阿新 • • 發佈:2018-12-21
上週由於其他的工作繁忙,都沒時間來寫部落格,這不一有時間,就馬上來寫最近實現的性功能了。 這篇主要講的是怎麼讓簡訊驗證碼具有時效性,我手上的專案要求的時效性是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"; } }
希望以上對大家在接入簡訊驗證碼這個問題上,有所幫助,謝謝!