怎么实现经过扫描二维码进行登陆

2021年09月15日 阅读数:1
这篇文章主要向大家介绍怎么实现经过扫描二维码进行登陆,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

首先,任何一个二维码表示的都是一串字符串。

咱们打开淘宝登陆页面: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/83818707html