微信扫描QR码登录网页的原理是什么,两个事件如何关联?

电脑杂谈  发布时间:2020-04-28 23:06:38  来源:网络整理

微信二维码登陆_微信网页版不扫二维码登陆_电脑登陆微信不用二维码

黄良懿

494个人同意答案

与@朱立雄的回答相反,从回答中可以看出他不了解技术细节. 了解前端开发的学生可以打开Firebug并查看登录过程的Net视图以查看该过程.

我的个人开发过程通常是对产品说: “您只需要提及业务需求,交互方法,性能需求等. 我们将根据开发时间和系统架构来考虑技术解决方案. ”

我碰巧花了几个小时才做类似的验证登录过程. 在这里,作为讨论,我将引用产品同学的答案,并解释什么是“非技术”.

电脑登陆微信不用二维码_微信二维码登陆_微信网页版不扫二维码登陆

1. 每次打开微信网页时,都会随机生成一个包含唯一uid的QR码,每次刷新页面时二维码都会有所不同(这可以确保一个uid只能绑定到一个帐户和密码. 绑定多个帐户和密码,那么您的计算机很有可能会登录到其他人的微信);它确实会返回一个唯一的ID,但目的是识别用户的身份,实际上是在浏览器打开此页面并且服务器创建了一个长连接以等待确认时.

检查wx.qq.com的源代码,您可以看到,在加载此页面时,已经预加载了很多仅在登录后才需要的相关资源,因此长连接等待登录的用户确认并显示用户信息很快,因为除了头像之外,无需刷新页面并加载其他资源.

2. 用户登录后使用微信扫描二维码时,该ID将绑定到手机上的微信帐号和密码,并上传至微信网页版服务器;上一张图片: p>

电脑登陆微信不用二维码_微信二维码登陆_微信网页版不扫二维码登陆

二维代码示例: weixin.qq.com/x/ARmFYVvUzczwBl9u6Y1I,使用诸如我的支票之类的二维代码应用程序可以获得这样的地址,但是该地址不会自动打开. weixin.qq.com/x/开头的地址经过特殊处理,将自动获取相关信息并迅速确认. 当移动版微信访问该页面进行确认时,服务器同时获取了客户端信息,并通过之前保持的长连接通知浏览器.

3. 微信网页将每1或2秒获取与该ID对应的微信帐号和密码. 如果id绑定了微信账号和密码,则可以申请该账号和密码. 自动登录. 浏览器显示长连接中包含的用户信息(头像等)后,它将打开一个新连接并等待客户端的确认操作. 其URL类似于login.weixin.qq.com/cgi-bin/mmwebwx-bin/login? uuid = 794ecedd804f47&tip = 1&_ =1395748413642. 从安全角度来看,无论如何,它都不允许客户端获得微信帐户和密码. 您应该知道腾讯不敢保存密码本身(有兴趣的学生可以了解CSDN明文密码泄漏事件),并且肯定无法将其返回给浏览器.

从体感的角度来看,不可能通过在页面上轮询1-2秒来发起GET请求. 实际上,通过阻塞和等待的长连接几乎可以实时获取信息. 对于验证过程,通常通过授权令牌(Token)解决Open API. 原理是,用户通过授权后,会在有限的条件下分配令牌(例如,限制本地访问,限制授权的有效时间以及限制同时登录的设备数量等),以便授权用户可以仅在有限的前提下访问相关服务. 例如,计算机休眠后做出的授权将自动撤回,这有效地避免了在其他人的计算机(尤其是网吧)上打开计算机,但却忘记了关闭或退出此类安全问题.

同时,整个授权过程的验证部分是在手机端进行的,这有效地消除了对PC上溢出的各种木马程序和“安全工具”的监视,从而大大降低了开户风险盗窃.

因此,核心过程应该是: 浏览器获取一个临时ID,等待客户端通过长连接扫描具有该ID的QR码,并从长获取客户端向服务器报告的帐户信息. 显示连接. 客户端单击确认后,它将获得服务器授予的令牌,并执行后续的信息交换过程. 超时,网络断开连接或在其他设备上登录后,先前获得的令牌将丢失或无效,从而为授权过程提供了有效的安全保护.

微信二维码登陆_微信网页版不扫二维码登陆_电脑登陆微信不用二维码

于2014-03-26编辑

吕十田

94个人同意答案

许多贤哲告诉我们不要惹麻烦.

许多贤哲也告诉我们说人类.

微信二维码登陆_电脑登陆微信不用二维码_微信网页版不扫二维码登陆

签名显示了我的态度,那么我只想说几句话,嘿,只是几句话,不要抓住我的手稿!

1. 当您使用浏览器打开wx.qq.com时,微信会为您随机分配一个链接,[相当于为您打开一个房间,房间号1024,请注意,只有您的房间号微信二维码登陆,否给您密钥],并用QR包裹密码,并设置一个有效时间[如果您不进入房间10分钟,您将被取消]. 这里没有用户,因此没有UID(用户ID)微信二维码登陆,只是字母和数字的随机组合.

2. 二维码转码规则是统一的,因此,只要它是二维码扫描软件,任何人都可以获取此链接,微信可以对其进行扫描,我也可以通过检查对其进行扫描.

3,因此获取链接毫无用处. 重要的是谁获得了链接,而微信获得了,您可以将消息从微信客户端发送到服务器,并告诉服务器当前正在使用该链接的用户,另外两个QR码扫描软件无法与微信服务器对话,所以它一文不值. [您获得房间号,只需致电酒店老板并说是我. 老板知道张三又来了. 其他人没有老板电话,并且知道房间号码无用]

4. 这时,在您刚刚打开的浏览器窗口中,您知道并显示您的信息. 从理论上讲,您可以直接打开聊天窗口,但是为了不感到尴尬或尴尬,微信选择让您再次使用手机. 进行确认操作. [你站在房间的门口,老板也知道你是张三,把你的好朋友放到你的房间里,但是谁知道你的朋友会在房间里做什么呢?如果他正好弯腰捡肥皂,这时正好有人在你身后,门敞开着,所有人都感到尴尬?因此,老板很周到,他要您在开门之前在电话上进行确认,您可以等到没有人离开后再开门进入]

5. 好了,现在您可以进去享受您的朋友了.

发布于2014-03-27


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-192291-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...