怎么实现通过扫描二维码进行登录
首先,任何一个二维码表示的都是一串字符串。
我们打开淘宝登录页面: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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
2011-09-14 简单的webservice调用(天气预报)