掃碼登錄很簡單

一、掃碼登錄的原理和流程是什麼?

● (1) 用戶點擊 PC 端掃碼登錄按鈕。
● (2) 網站自動生成二維碼。
● (3)瀏覽器每隔一段時間 (暫定 5 分鐘) 調用一次獲取最新二維碼(前端)。
● (4) 用戶使用 App 掃描二維碼。
● (5)App 提取並解析二維碼中的信息並顯示登錄確認界面。
● (6) 用戶在 App 中的彈出登錄確認界面中點擊確認按鈕。
● (7) 解析出來的二維碼信息與 App 攜帶 Token 綁定。
● (8)PC 端不斷輪詢請求掃碼登錄授權接口,查詢二維碼解析信息是否與 App 攜帶的 Token 綁定成功。
● (9) 如果查詢綁定成功,掃碼登錄授權接口中的響應數據會有標記。
● (10)PC 端拿到對應的響應數據作爲參數去請求統一授權接口。
● (11) 統一授權接口驗證合法通過後,自動跳轉至 PC 端系統界面。

一共 11 步,需要前端開發者、後端開發者、App 開發者密切配合,由後端開發者主導,前端開發者與 App 開發者輔助。

這個流程主要參考了以下文章,並結合一些實際情況做了一些調整:
掃碼登錄功能如何實現?一文搞懂主流的掃碼登錄技術原理

一圖搞懂掃碼登錄的技術原理

相關的流程圖如下:

二、掃碼登錄需要注意哪些問題?

那麼疑問來了,這些問題該如何解決呢?

1. 針對數據交互安全性問題

二維碼中的數據必須是要加密的,而加密的數據,App 端與服務端約定好加解密算法,服務端返回給 PC 端是加密的,PC 端無法解析出來,App 端通過密鑰可以解析出來,這是一點。但爲了儘可能提高安全係數,內部必須有一套針對掃碼登錄的鑑權機制配合使用,否則很容易造成安全隱患。這裏的數據交互安全性問題,很好解決,就是雙方約定好加密算法和特定數據解密密鑰,密鑰定期更換,與系統鑑權配套。

2. 掃碼登錄失效問題

由於二維碼的時間是有限制的,以五分鐘爲例,如果五分鐘內不掃描對應二維碼的話,二維碼就會自動失效,這時 PC 端將會重新請求服務端刷新二維碼 (獲取新的二維碼),從某種程度上也是爲了保障安全性。針對這樣的問題,在 App 掃碼過程中應當有一個提示,如果當前二維碼超過時效期的話,提示,已掃描的二維碼已失效,請重新掃碼 (最常見的微信 PC 端掃碼登錄就是這樣做的)。

3. 數據交互能否正常綁定問題

掃碼登錄最大的問題之一就是最後流程走完了,結果發現登錄不了。爲什麼登錄不了,有人疑問,我流程走完了,沒問題,但爲什麼最後不動呢?通常來說問題的原因是綁定失敗,綁定失敗涉及到數據存儲,這時可以通過看系統日誌以及中間件日誌的方式排查一下數據存儲是否有問題。

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