PC版微信扫描登陆原理

1. 二维码背景

自从微信推广二维码以来,在各个领域二维码的使用越来越广泛,几乎覆盖了各行各业,甚至连一些软件也使用二维码来登陆。那么在二维码登陆的背后是什么原理呢?

2. 解析二维码

我们要登陆PC版微信,需要扫描的图片如下:
在这里插入图片描述
我们通过解析路径发现其指向的路径为https://login.weixin.qq.com/l/obsbQ-Dzag==。那么这个网址有什么用呢?它是怎么来实现和登陆的用户相绑定的功能呢?

3.原理过程分析

自己懒得再画图,这边借用别人的图来解释。
在这里插入图片描述

<1>用户访问微信网页版,此时微信服务器会为其生成一个全局唯一的UUID。然后这个UUID就存放在上面路径https://login.weixin.qq.com/l/obsbQ-Dzag==的后面,此时该操作并没有和用户有交互,所以该ID仅仅是个唯一字符串而已,系统并不知道该ID会和哪个用户相绑定。
 如果过此时你不断地刷新,你会发现每次的ID都会发生过变化。感兴趣的可以自己手动来抓包,这里就不做示范了。注意:此时服务器和更改你网页还会建立一个长连接,为了节约系统资源,如果一段时间不扫描,便会超时。返回状态为408。

<2>用户扫描PC端的二维码,返回状态码为201,并且生成一个询问,是否登录。这个步骤的目的是为了获取起生成的全局唯一UUID,为了下一步和微信绑在一起。

<3>用户如果此时点击确认登陆,则会像系统发送一条请求,并且将UUID和用户账号(或者token)一块发送过去。

<4>系统受到这一步的目的是将UUIIDI和用户账号(或token)绑定在一起,因为二者都是唯一,便可以确定唯一的对应关系。处理完该关系后,系统会向PC端反馈消息,这个UUID对应的用户是A,然后网页便可请求加载A的微信信息和资料。

4.总结

二维码扫描看起来好像很高大上,其实原理还是比较简单的。首先浏览器获取一个唯一的、临时的UUID,然后等待用户扫描,如果扫描并且确认,后台系统就会将二者绑定,然后发送也浏览器这个UUID绑定的用户信息。从而确定对应关系。

注意:在超时、网络断开、或者其他设备浏览器上登陆后,,此前绑定的UUID将会失效,这样会形成更有效的安全防护。有些二维码不能扫是因为它会访问钓鱼网站,从而造成财产直接或间接流失。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值