解析 App 中手機號碼一鍵登錄的原理

    本機號碼一鍵登錄是一種新型的登錄方式,登錄方式的演變過程大致可以分幾個階段:

    一鍵登錄從用戶體驗和安全性上來講是更優的一種登錄方式,目前在很多 APP 的目前都支持 “本機號碼一鍵登錄” 功能,如下圖所示的一鍵登錄圖:

    APP 中會展示一個帶有手機號掩碼(中間 4 位號碼隱藏了)的授權登錄頁面,用戶點擊 “同意授權” 按鈕後,應用 APP 通過運營商獲取完整的手機號碼(因爲爲了保護用戶隱私,Android 和 IOS 系統限制了應用直接獲取本機號碼的能力),然後有了完整的手機號碼後可以實現以本機號碼的方式登錄。那麼本機號碼一鍵登錄是如何實現的呢?下面我們來聊聊它的實現原理和流程。

1、本機號碼一鍵登錄的基礎原理

    手機流量上網原理是實現一鍵登錄的關鍵。流量上網採用 PPP 協議進行點對點連接。在物理層,流量通過手機內置的基帶模塊進行無線信號的調製、解調工作。

    流量上網過程分爲接入和傳輸兩個階段,接入階段中手機攜帶 IMSI 信息連接 MME(移動控制單元),MME 通過 HSS(歸屬簽約用戶服務器)驗證後,進行初始化並提供加密傳輸支持。傳輸階段中數據包經過基站、S-GW(服務網關)、P-GW(PDN 網關)到達互聯網資源,同時運營商能夠通過 IMSI 或 GUTI 獲取當前用戶的手機號碼。

    獲取手機號碼的能力通過數據網關實現,運營商具備驗證連接用戶身份的能力,手機卡中的 IMSI 信息在運營商數據庫中記錄,確保基站能夠驗證用戶身份。

2、APP 中本機號碼一鍵登錄的實現流程

(1)獲取手機掩碼並喚起授權頁

    當用戶打開 APP 需要登錄的時候,APP 會取運營商那裏查詢用戶的手機號碼掩碼,運營商驗證通過之後將當前的手機號掩碼返回給 APP 並在認證的運營商的認證 SDK 上緩存手機號的掩碼,最後就是展示給用戶手機號的掩碼,如下圖所示的展示的手機號掩碼:

(2)獲取手機號掩碼的 token

    用戶點擊 “本機號碼一鍵登錄” 按鈕之後,APP 發送授權請求到運營商服務器上,運營商驗證通過之後返回手機號掩碼和手機號掩碼對應的 token 給應用 APP。

(3)獲取手機號的應用授權 token_a

    應用 APP 攜帶手機號掩碼 token 發起登錄請求到手機 APP 服務器上,然後手機 APP 服務器上通過攜帶手機號掩碼 token、應用 id 和簽名請求運營商服務器。運營商服務器驗證通過之後返回完整的手機號碼給手機 APP 服務器,然後手機 APP 服務器生成對應的應用授權 token_a,並返回應用授權 token_a 給 APP,APP 緩存應用授權 token_a 並提示登錄成功。

(4)APP 攜帶應用授權 token_a 訪問服務器:

    每當 APP 請求訪問手機 APP 服務器的時候,客戶端都會帶着 token_a 訪問服務器,服務端驗證 token_a 同通過後便讓請求訪問。

至此就完成了本機號碼一鍵登錄請求的流程。

總結:

(1)本機號碼一鍵登錄是實現不用記複雜的密碼,不送接收驗證碼,真正的實現 2 秒輕鬆的登錄。

(2)本機號碼一鍵登錄經過獲取手機掩碼、獲取手機號掩碼的 token、獲取手機號的應用授權 token_a 等幾個關鍵步驟後實現登錄流程。

(3)三個運營商的都有各自的開放平臺(移動 - 互聯網能力開放平臺、電信 - 天翼賬號開放平臺、聯通 - WO + 開放平臺),如果要兼容三大運營商就需要分別接入三個 SDK,目前已經有了第三方整合了三大運營商認證能力的第三方 SDK(常見的有阿里 - 號碼認證服務、創藍 - 閃驗、極光 - 極光認證、mob - 秒驗)。

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/_HrADTc8pBOpWZW6McE_sw