014_Java 手機注冊等驗證碼在服務端的存放位置


1. 當業務量不大時,且時間小於session存活時間時,使用session來進行存儲

  • session存活時間 : 在tomcat中默認為30分鍾,可以根據需要進行修改

2. 當業務量達到一定程度后,不建議使用session,效率會降低,建議使用redis等緩存技術來存儲

  • redis存儲時,手機號作為key,驗證碼和超時時間作為值.前台設置60秒按鈕才能重新點擊
  • 登錄后台接收到前台的手機號時,從redis中get驗證碼,如果為空,給出提示重新獲取
  • 如果不為空,判斷前台傳遞來的驗證碼與redis中的是否一致
  • 之后做出登錄邏輯
  • 使用完的驗證碼要刪除掉,避免重復使用
  • 如果第一個用戶沒收到,60秒后重新發送驗證時,更新redis中的驗證碼

  備注 :

  1. 可以用手機號碼做key,設置過期時間,發短信前先get一下,n秒內能get到值就不允許重復發送 ?

  如果這樣寫,但純存一個key值肯定后者要覆蓋前者,你可以用隨機生成的驗證碼加上token或者id存入redis,但是這樣還會有個問題,一旦並發量大,那么redis也是很難去找,浪費效率,所以在生產的時候,你可以加冒號,在redis中自動生成指定的文件夾

  2. java 將驗證碼存放在session是否安全,會不會被截取?

  JSP和servlet都運行在服務端,是不用擔心被熊孩子截取的

  3.手機驗證碼計費問題?

  這是另外一個問題,且待下回詳解......

3. 不建議使用關系型數據庫,畢竟從硬盤讀寫數據速度要遠低於內存的讀寫速度.

 


免責聲明!

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



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