解析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-秒驗)。