admin管理员组

文章数量:1531657

2023年12月18日发(作者:)

扫描二维码登录原理

【篇一:扫描二维码登录原理】

由于二维码的发展。现在二维码的用处是越来越大了。很多地方都可以见到二维码的影子,比如二维码支付,二维码登录,等。在此之前我们先了解下二维码以下是来自百度百科的解释 :

二维码(two-dimensional code),又称二维条码,它是用特定的几何图形按一定规律在平面(二维方向)上分布的黑白相间的图形,是所有信息数据的一把钥匙。在现代商业活动中,可实现的应用十分广泛,如:产品防伪/溯源、广告推送、网站链接、数据下载、商品交易、定位/导航、电子凭证、车辆管理、信息传递、名片交流、wifi共享等。如今智能手机扫一扫(简称313)功能的应用使得二维码更加普遍。

二维码可以存储信息。通过扫描可以获取二维码上面的信息,获取到之后就可以经过处理加工查询等一些操作。下面是一个二维码扫描登录的例子大致原理如图所示:

首先,服务器端要生成一个二维码在浏览器端输出,这就是我们在浏览器上见到的二维码。这里我们生产一个不重复的guid。为了避免登录错位。此时浏览器二维码页面的脚本就会不停的发异步到服务器,返回用户是否登录成功的结果。在登录成功之前或者二维码实现之前不停的发送异步。设置一分钟二维码失效。用户登录app,app此时有了用户登录过的加密信息。通过扫描二维码获取到唯一的guid,也就是授权码,将guid和用户信息一起打包发送给服务器做验证。认证结果发送给前端脚本所做的请求。前端如果返回认证成功那么做登陆跳转,其他做相应的处理。

【篇二:扫描二维码登录原理】

1:打开二维码登录网页

2:调用getqrcodeservlet

3:getqrcodeservlet干2件事

a:生成随机的uuid,是一个唯一标识,该标识贯穿整个流程

b:生成二维码图片,二维码信息

4:index页面展示二维码

5:index页面调用longconnectioncheckservlet进行长连接轮询操作,参数为uuid

6:longconnectioncheckservlet只干1件事

a:拿到uuid后循环检查loginusermap中uuid是否不为null。

7:如果为null则代表没有登录,将继续进行轮询

ps: longconnectioncheckservlet 一个长连接请求检测登录状态

loginusermap 是一个静态的map结构的登录池,uuid为key , 登录信息为value~

【篇三:扫描二维码登录原理】

我个人开发过程一般是和产品说,『你们提业务要求、交互方式、性能要求等就好,技术方案我们会综合开发时间、系统架构等因素考虑』。

查看 的源码可以轻易看出来,其实这个页面加载完毕的同时,也已经把很多登录后才需要的相关资源都加载进来了,然后会开启一个长连接等待登录用户的信息。 当用户使用登陆后的微信扫描该二维码的时候,会将这个 id 和手机上的微信账号及密码绑定,并上传到服务器;先上个图:

二维码样例: ,利用我查查之类的二维码应用可以轻易得到类似这样的地址,但并不会自动打开该地址,微信实际上针对 开头的地址做了特殊处理,会自动获取相关信息并提示确认。

在手机版微信访问这个页面进行确认时,server 已经同时获得了客户端信息,并通过之前保持的长连接告知浏览器。 页面每隔 1 秒或

2 秒会 get 请求该 id 对应的微信账号及密码,如果 id 绑定上了微信账号和密码,那么就可以请求到账号和密码,就可以自动登陆了。浏览器展示完长连接里包含的用户信息(头像等)后,会新开一个长连接等待客户端的确认操作,其 url 类似 。从安全的角度来说,无论如何都不会让客户端获得微信帐号和密码,要知道,密码这玩意腾讯自己都不敢保存(有兴趣的同学可以自行了解下 csdn 明文密码泄露事件),肯定是不可能返回给浏览器的。

而且从体感来看,怎么着都不可能是页面 1-2 秒 get 请求的,实际是通过长连接,近乎实时的获得信息。

对于验证过程,open api 一般是通过授权令牌(token)来解决的,原理是当用户通过授权后,分配一个限定条件下的令牌(如限制本机访问、限制授权有效时间、限制同时登录设备数等),使获得授权的用户仅在有限的前提下能访问相关服务。

像计算机休眠后曾做的授权就自动收回了,这样就有效的避免了在别人电脑上(尤其是网吧)打开,但忘记关闭或退出这类安全问题了。

同时,整个授权过程的验证部分在手机端进行,有效杜绝了 pc 上泛滥的各类木马、『安全工具』的监听,大大降低了帐号被盗的风险。

整个核心过程是:浏览器获得一个临时 id,通过长连接等待客户端扫描带有此 id 的二维码后,从长连接中获得客户端上报给 server

的帐号信息进行展示,并在客户端点击确认后,获得服务器授信的令牌,进行随后的信息交互过程。

在超时、网络断开、其他设备上登录后,此前获得的令牌或丢失、或失效,有效完成了安全防护。

本文标签: 二维码登录信息扫描连接