1. 程式人生 > >掃碼登入是如何實現的?

掃碼登入是如何實現的?

作者:耗子吳
連結:https://www.jianshu.com/p/7f072ac61763

網頁版微信剛推出時,無數人被它的登入方式驚豔了一下,不需要輸入使用者名稱密碼,開啟手機微信掃一掃,便自動登入。從原理上講,二維碼只能是一段文字的編碼,如何用它實現快捷登入的呢?

開啟網頁版微信,可以看到如下的頁面:

微信掃碼介面

如果你用我查查、支付寶、新浪微博等軟體掃碼二維碼,你會發現此二維碼解析出來是如下的網址:

https://login.weixin.qq.com/l/obsbQ-Dzag==

接下來詳細介紹一下掃碼登入具體的每個步驟:

掃碼登入完整流程

①:使用者 A 訪問微信網頁版,微信伺服器為這個會話生成一個全域性唯一的 ID,上面的 URL 中obsbQ-Dzag==

就是這個 ID,此時系統並不知道訪問者是誰。

②:使用者A開啟自己的手機微信並掃描這個二維碼,並提示使用者是否確認登入。

③:手機上的微信是登入狀態,使用者點選確認登入後,手機上的微信客戶端將微信賬號和這個掃描得到的 ID 一起提交到伺服器

④:伺服器將這個 ID 和使用者 A 的微訊號繫結在一起,並通知網頁版微信,這個 ID 對應的微訊號為使用者 A,網頁版微信載入使用者 A 的微信資訊,至此,掃碼登入全部流程完成

掃碼登入看起來神奇,主要是因為微信 APP 掃自家的碼會做一些普通二維碼軟體不會做的額外的操作,那就是將當前已登入的微信和掃出來的 ID 提交到微信伺服器,類似的應用還有掃碼支付、掃碼加公眾號等功能。