簡訊驗證——上行和下行

来源:http://www.cnblogs.com/iforever/archive/2016/08/04/5736142.html
-Advertisement-
Play Games

簡訊驗證碼 簡訊下行 簡訊下行的使用場景 簡訊驗證碼就是最常用的一個簡訊下行的例子,相對於傳統的圖片驗證碼,簡訊驗證碼最大的好處就是提升了賬號的有效性,註冊這一般都是使用自己的手機號嗎。當然了,除此之外簡訊驗證碼還可以用於登陸,方便快捷。 簡訊下行的設計 簡訊下行的驗證方式,較上行驗證碼簡單很多,這 ...


簡訊驗證碼

簡訊下行

簡訊下行的使用場景

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

簡訊下行的設計

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

  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)所有,未經作者本人同意禁止任何形式的轉載,轉載文章之後必須在文章頁面明顯位置給出作者和原文連接,否則保留追究法律責任的權利。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 遞歸測試 ...
  • 本文是java學習隨手的筆記,分享非大家,吾本電腦專業大學僧一枚,參加研究生考試,因技術不過關,覆試pass了我,於是我來到一家菜鳥公司,拿著微薄的工資,吃著饅頭喝著涼水,苦練技術,因為相信技術可以成就夢想,於是日夜勤奮,堅持不懈,相信通過自己的努力,可以學有所長。造福一方,哈哈。 ...
  • myPHP框架 採用的是MVC 思想,應用純面向對象及項目單一入口,實現的一個自定義的框架。(自己興趣的練習) 一、項目單一入口 入口文件 myphp\index.php前臺 一個網站所有的請求都請求一個文件(入口文件)index.php\admin.php。入口很簡單,用於定義一個訪問的許可權,引入 ...
  • 2016年8月4日,第一次開筆寫博客園,今天在公司解決了一個問題。 apache+jboss做負載均衡的問題一直困擾了很久。問題描述如下,使用apche做反向代理轉發給3台jboss 的app,app有session會話。為了跳轉不丟失session會話,需要配置。經過幾天的尋找,大概有兩種方法: ...
  • Instrumentation 類載入過程 Instrumentation與Transformer Instrumentation與Transformer的關係 Instrumentation介面簡介 觸發位元組碼轉換的途徑 Transformer分類 Transformer調度過程 Transfor ...
  • 題目鏈接 http://acm.hdu.edu.cn/showproblem.php?pid=2955 題意 小偷有個總的逃跑概率,每個銀行有一個錢數和逃跑概率,問在總的逃跑概率下能最多獲得多少錢? 思路:開始有0-1背包寫,把概率擴大100倍,wa了,重改思路。把總價格當容量,被抓的概率為價值 在 ...
  • ...
  • 1. 關於值棧: 1). 登陸 時, ${userName} 讀取 userName 值, 實際上該屬性並不在 request 等域對象中, 而是從值棧中獲取的. 2). ValueStack: I. 可以從 ActionContext 中獲取值棧對象 //1. 獲取值棧 ValueStack va ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...