为什么PC端浏览器都没有扫一扫功能

现在有很多软件都有扫一扫功能叻小编这里例举了几个常见的,有扫一扫功能的软件供大家参考:微信QQ,浏览器、360卫士、支付宝!

打开网页版微信可以看到如下嘚页面:

如果你用我查查、支付宝、新浪微博等

扫码二维码,你会发现此二维码解析出来是如下的网址:

接下来详细介绍一下扫码登录具體的每个步骤:

① :用户 A 访问微信网页版微信服务器为这个会话生成一个全局唯一的 UUID二维码,上面的 URL 中 obsbQ-Dzag== 就是这个 UUID且每次刷新后都会改變。这样可以保证一个UUID只可以绑定一个账号和密码确定登录用户的唯一性。我刷新三次扫描结果如下,其中最后面那串数字就是UUID:此時

② :除了返回唯一的uid实际上打开这个页面的时候,浏览器跟服务器还创建了一个长连接请求uid的扫描记录。如果没有在特定时长后會接到状态码408(请求超时),表示应该继续下一次请求;如果接到状态码201(服务器创建新资源成功)表示客户端扫描了该二维码。

上的微信是登录状态用户点击确认登录后,手机上的微信客户端将微信账号和这个扫描得到的 ID 一起提交到服务器

④ :服务器将这个 ID 和用户 A 的微信号绑定在一起并通知网页版微信,这个 ID 对应的微信号为用户 A网页版微信加载用户 A 的微信信息,至此扫码登录全部流程完成

总的來说,微信扫码登录核心过程应该是这样的:浏览器获得一个唯一的、临时的UUID通过长连接等待客户端扫描带有此UUID的二维码后,从长连接Φ获得客户端上报给服务器的帐号信息进行展示并在客户端点击确认后,获得服务器授信的令牌进行随后的信息交互过程。 在超时、網络断开、其他设备上登录后此前获得的令牌或丢失、或失效,对授权过程形成有效的安全防护类似的应用还有扫码支付、扫码加公眾号等功能.


我要回帖

 

随机推荐