手机扫码登陆原理
-
問題描述
qq,淘寶等應(yīng)用在pc端app或網(wǎng)頁版都有掃碼登陸功能(下述統(tǒng)稱為網(wǎng)頁端)。用戶無需輸入用戶名和密碼,通過在手機端app登陸后,掃網(wǎng)頁中的二維碼即可直接登陸。
-
原理分析:網(wǎng)頁端+服務(wù)器
用戶在瀏覽器點擊“二維碼登陸”向服務(wù)器發(fā)送掃碼登陸請求,服務(wù)器收到請求后,隨機生成一個uuid(通用唯一標識符:universally?unique?identifier),將這個id作為key值存入redis(數(shù)據(jù)庫)服務(wù)器,同時設(shè)置一個過期時間,過期后,用戶得刷新重新獲取二維碼登陸。服務(wù)器將uuid這個key值和本公司的驗證字符串組合在一起,通過二維碼生成接口生成一個二維碼圖片,然后將二維碼圖片和uuid一起返回給瀏覽器。
-
原理分析:手機端+手機端服務(wù)器
服務(wù)器返回二維碼圖片到瀏覽器后,會提示信息讓用戶拿出手機掃碼。用戶掃碼獲取二維碼中的字符串。因為手機端已經(jīng)登陸過,所以發(fā)送登陸請求時參數(shù)會攜帶token,服務(wù)器通過解析獲得userid(客戶端不直接發(fā)送userid是因為可能被截取,而token是加密的,更安全),對比驗證信息驗證是否為用戶請求登陸信息,驗證成功則會返回一個響應(yīng)。手機端獲得一個確認登陸框(避免用戶手誤)。確認登陸后手機端再發(fā)送一個請求。服務(wù)器端收到uuld與userid后,將userid作為uuld值的value值存入redis服務(wù)器中。
-
原理分析:登陸成功
然后,瀏覽器再次發(fā)送請求的時候,瀏覽器端的服務(wù)器就可以得到一個用戶Id,并調(diào)用登錄的方法,聲成一個瀏覽器端的token,再瀏覽器再次發(fā)送請求的時候,將用戶信息返回給瀏覽器,登錄成功。這里存儲用戶id而不是直接存儲用戶信息是因為,手機端的用戶信息,不一定是和瀏覽器端的用戶信息完全一致。
-
總流程圖
總結(jié)
- 上一篇: Multisim基础 示波器 微调测量游
- 下一篇: G38.2 指令