女士们先生们,我们一定会经常使用微信网页或PC客户端上的扫描码登录。那么其中的原理是什么呢?今天,边肖将带你去了解。
为便于理解的非正式解释
01
当你用浏览器打开http://wx.qq.com时,微信会随机给你分配一个链接,[相当于给你开了一个房间,房间号1024。注意,我只给你房间号,不给你钥匙],用二维码包裹,有有效时间设定【10分钟不进房间,取消】。没有关于用户的东西,所以没有UID(用户ID),只是字母和数字的随机组合。
02
二维码的转码规则是统一的,这意味着任何一个二维码扫描软件的人都可以得到这个链接,微信可以扫描出来,我也可以扫描出来。
03
所以,得到链接是没有用的。重要的是谁得到了链接。微信拿到的时候可以从微信客户端给服务器发一条消息,告诉服务器现在是谁在使用某个链接。其他二维码扫描软件无法和微信服务器通话,所以一文不值。【拿到房间号就给酒店老板打电话说是我。老板就知道张三又来入住了。别人没有老板的电话,知道房间号也没用]
04
此时,您的信息是已知的,并显示在您刚刚打开的浏览器窗口中。理论上可以直接打开聊天窗口,但为了不突兀尴尬,微信选择让你在手机上做一个确认操作。【你站在你房间门口,老板知道你是张三,把你的好基友放在你房间,但是谁知道基友会在你房间干什么?如果他只是弯腰捡肥皂,那么你身后刚好有人经过,门大开着。你尴尬吗?所以,老板是体谅的。他想让你在给你开门之前在电话里确认一下。可以等后面没人了再开门。]
05
现在你可以进去享受你的同性恋朋友了。
技术解决方案
01
02
用户使用登录的微信扫描二维码时,id会绑定到手机上的微信账号和密码,并上传到微信web版本服务器;
先上图:
二维码示例:http://weixin.qq.com/x/ARmFYVvUzczwBl9u6Y1I,您可以通过使用二维码应用程序(如“我检查”)获得这样的地址,但它不会自动打开该地址。微信客户端对以http://weixin.qq.com/x/,开头的地址进行了特殊处理,会自动获取相关信息并提示确认。当手机版微信访问此页面进行确认时,服务器已经同时获取了客户端信息,并通过之前维护的长连接通知了浏览器。
03
微信网页每1秒或2秒就会得到id对应的微信账号和密码。如果id与微信账号和密码绑定,您可以请求账号和密码并自动登录。
(2)从身体感觉来看,页面不可能轮询1-2秒发起GET请求。事实上,信息几乎是通过阻断等待已久的连接而实时获得的。对于认证过程,开放API一般通过授权令牌解决。原理是用户通过授权后,在有限条件下(如限制本地访问、限制授权有效时间、限制同时登录的设备数量等)的一个令牌。)被分配,因此授权用户只能在有限的条件下访问相关服务。比如电脑进入睡眠状态后一旦做的授权自动撤销,有效避免了在别人电脑(尤其是网吧)上打开却忘记关闭或退出的安全问题。
(3)整个授权过程的验证部分在手机上进行,有效消除了对PC上各种木马和“安全工具”泛滥的监控,大大降低了账户被盗的风险。
(4)核心流程应该是:浏览器获取一个临时id,通过长连接等待客户端用这个id扫描二维码,从长连接获取客户端上报给服务器的账号信息进行显示。客户端点击确认后,从服务器获取信用授予令牌,进行后续的信息交互过程。在超时、网络断开和在其他设备上登录之后,先前获得的令牌要么丢失,要么无效,这形成了对授权过程的有效安全保护。
作者:yaphetsfang
出去:https://www.cnblogs.com/yaphetsfang
1.《微信怎么扫码登录 微信扫码登录究竟是怎么个原理?》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《微信怎么扫码登录 微信扫码登录究竟是怎么个原理?》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/guoji/1286427.html