短信驗證——上行和下行


短信驗證碼

短信下行

短信下行的使用場景

短信驗證碼就是最常用的一個短信下行的例子,相對於傳統的圖片驗證碼,短信驗證碼最大的好處就是提升了賬號的有效性,注冊這一般都是使用自己的手機號嗎。當然了,除此之外短信驗證碼還可以用於登陸,方便快捷。

短信下行的設計

短信下行的驗證方式,較上行驗證碼簡單很多,這里以短信驗證碼為例:

  1. 用戶輸入數據號。
  2. 點擊獲取驗證碼。
  3. 后端收到請求,根據手機號生成驗證碼,放入緩存,設置有效期,驗證碼以手機短信的形式發給用戶。
  4. 用戶收到驗證碼,進行校驗。
  5. 請求后端進行校驗。
  6. 服務器收到請求,根據手機號、驗證碼和服務器放入緩存中的進行匹配。

短信上行

短信上行的使用場景

短信服務在互聯網中應用的場景很多,比較常見的就是驗證碼了,但下行短信往往受網絡的影響比較大,
經常會出現用戶收不到短信、短信延遲特別大的情況。為了解決這個問題,前輩們提出了一個改進的方案——上行驗證
碼,上行驗證碼出現延遲的情況也有,不過這個延遲在用戶方(網絡不穩定,用戶方會顯示正在發送。。。),只要
用戶將短信放出去了就不會有延遲。

短信驗證碼的設計

這里使用短信上行注冊為例說明下短信上行驗證碼:

  1. 獲取用戶手機號。
  2. 帶上手機號請求后端。
  3. 后端生成驗證碼,將驗證碼和手機號映射存入緩存,並設置過期時間。
  4. 將生成的驗證碼和短信接收號碼發送給用戶(http形式)。
  5. 用戶將驗證碼發送給指定的接收號碼。
  6. 運營商收到用戶的短信后,帶上用戶發送的內容和用戶手機號,調用回調(短信運營商后台可以配置回調url)。
  7. 回調函數中去驗證用戶的發送內容是否ok,ok之后更新redis緩存中的標記,設置驗證成功。
  8. 客戶端輪詢,檢測用戶對應的redis緩存標記是否ok,ok則繼續執行操作。

總結

短信驗證經常使用,大大小小的互聯網公司都在用它,但我缺少了那種敏銳的嗅覺,一直沒有意識到他具體是怎么實現的,自以為是的認為很簡單。這次用到了,正好學習總結下。現在發現這個短信驗證這個過程其實還挺有意思的。

2016-8-4 19:55:33

本文版權歸作者iforever(luluyrt@163.com)所有,未經作者本人同意禁止任何形式的轉載,轉載文章之后必須在文章頁面明顯位置給出作者和原文連接,否則保留追究法律責任的權利。


免責聲明!

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



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