掃碼登錄的簡單實現-思路分析

要實現手機掃碼登錄,需要服務端、web前端和手機移動端App三方合作,大致邏輯流程是這樣的。

1. web端向服務端發出請求getScanCode,獲取一個用於生成二維碼的信息字符串,這個信息字符串包含表示此次登錄的識別碼,可以設計爲安全token;

2. 服務端收到web端的請求,會生成一個識別碼,返回給web端,同時將其加入數據庫,這個數據庫可以是sql,也可以是nosql,我在這裏爲了移植方便,不使用外部數據庫,而是在內存創建map來保存。其數據具有有效時間限制;

3. web端收到響應信息,解析出識別碼之後,顯示二維碼圖形等待掃描,並且開始輪詢服務端askLogin,查詢匹配識別碼的登錄狀態,獲取登錄信息。這裏的輪詢可以是tcp,不過我在這裏使用的是http接口;

4. 手機app在已經登錄的情況下,掃描web端的二維碼,獲取二維碼中包含的識別碼,然後帶着識別碼和自己的登錄信息,向服務端發出登錄請求login。我這裏沒有去實現手機端App的登錄,因爲那在這裏不重要,我直接在手機端輸入用戶名和密碼權做登錄。用戶驗證信息依然放在內存當中。

5. 服務端收到App發來的login登錄請求,驗證用戶信息,修改掃碼登錄識別碼的數據;

6. web端輪詢查到掃碼識別碼登錄信息符合要求,服務端就會把登錄用戶的信息返回給web端;

7. web端收到服務端返回的成功登錄的信息,立即隱藏二維碼,顯示用戶登錄信息,或者跳轉頁面。

 

文章鏈接:

掃碼登錄的簡單實現-服務器端: https://blog.csdn.net/xxkalychen/article/details/102373570

掃碼登錄的簡單實現-Web端: https://blog.csdn.net/xxkalychen/article/details/102375025

掃碼登錄的簡單實現-移動App端: https://blog.csdn.net/xxkalychen/article/details/102375560

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章