怎么實現通過掃描二維碼進行登錄


首先,任何一個二維碼表示的都是一串字符串。

我們打開淘寶登錄頁面:https://login.taobao.com/member/login.jhtml,展示了二維碼:

image.png

 

通過草料二維碼解析出這張二維碼表示的是如下字符串:

https://login.m.taobao.com/qrcodeCheck.htm?lgToken=e20115f0e33f373f6be958ca54a60b56&tbScanOpenType=Notification,

這關鍵的就是lgToken,這是網頁的一個唯一ID。

 

當打開了二維碼登錄后,我們通過chrome控制台看網路請求,會發現:

網頁在輪詢調用接口:https://qrlogin.taobao.com/qrcodelogin/qrcodeLoginCheck.do?lgToken=9ed6cfefe97b10b808fbfff0705379b1&defaulturl=&_ksTS=1530178881213_61&callback=jsonp62,

即拿上面二維碼里的lgToken去請求服務。

如果沒有掃碼,返回的是:

image.png

如果掃了碼,但是手機上沒點擊“確認登錄”的話,界面顯示的是:

 image.png

輪詢接口返回的是:

image.png

如果長時間未掃碼,網頁端會停止輪詢,並顯示:

image.png

當手機端確認登錄后,接口返回的是:

image.png

這里返回了一個token,應該就是登錄態。

這其中手機端與服務端做了什么交互我們不得而知,但是可以猜測到,客戶端在登錄態有效的情況下,拿網頁端的lgToken去請求了服端,並且服務端記住了這個lgToken,並認為登錄了。當網頁端再次輪詢請求接口時,就返回真正的登錄態Token。

最后以一張流程圖總結掃碼登錄原理:

image.png
————————————————
版權聲明:本文為CSDN博主「360linker」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/belalds/article/details/83818707


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM