扫描二维码登录原理
【篇一:扫描二维码登录原理】
由于二维码的发展。现在二维码的用处是越来越大了。很多地方都可以见到二维码的影子,比如二维码支付,二维码登录,等。在此之前我们先了解下二维码以下是来自百度百科的解释 :
二维码(two-dimensional code),又称二维条码,它是用特定的几何图形按一定规律在平面(二维方向)上分布的黑白相间的图形,是所有信息数据的一把钥匙。在现代商业活动中,可实现的应用十分广泛,如:产品防伪/溯源、广告推送、网站链接、数据下载、商品交易、定位/导航、电子凭证、车辆管理、信息传递、名片交流、wifi共享等。如今智能(简称313)功能的应用使得二维码更加普遍。
二维码可以存储信息。通过扫描可以获取二维码上面的信息,获取到之后就可以经过处理加工查询等一些操作。下面是一个登录的例子大致原理如图所示:
首先,服务器端要生成一个二维码在浏览器端输出,这就是我们在浏览器上见到的二维码。这里我们生产
一个不重复的guid。为了避免登录错位。此时浏览器二维码页面的脚本就会不停的发异步到服务器,返回用户是否登录成功的结果。在登录成功之前或者二维码实现之前不停的发送异步。设置一分钟二维码失效。用户登录app,app此时有了用户登录过的加密信息。通过扫描二维码获取到唯一的guid,也就是授权码,将guid和用户信息一起打包发送给服务器做验证。认证结果发送给前端脚本所做的请求。前端如果返回认证成功那么做登陆跳转,其他做相应的处理。
【篇二:扫描二维码登录原理】
1:打开二维码登录网页index.html
2:index.html调用getqrcodeservlet
3:getqrcodeservlet干2件事
a:生成随机的uuid,是一个唯一标识,该标识贯穿整个流程
b:生成二维码图片,二维码信息
4:index页面展示二维码
5:index页面调用longconnectioncheckservlet进行长连接轮询操作,参数为uuid
6:longconnectioncheckservlet只干1件事
a:拿到uuid后循环检查loginusermap中uuid是否不为null。
7:如果为null则代表没有登录,index.html将继续进行轮询
ps: longconnectioncheckservlet 一个长连接请求检测登录状态
loginusermap 是一个静态的map结构的登录池,uuid为key , 登录信息为value~
【篇三:扫描二维码登录原理】
我个人开发过程一般是和产品说,『你们提业务要求、交互方式、性能要求等就好,技术方案我们会综合开发时间、系统架构等因素考虑』。
查看  的源码可以轻易看出来,其实这个页面加载完毕的同时,也已经把很多登录后才需要的相关资源都加载进来了,然后会开启一个长连接等待登录用户的信息。 当用户使用登陆后
的扫描该二维码的时候,会将这个 id 和手机上的账号及密码绑定,并上传到服务器;先上个图:
二维码样例:  ,利用我查查之类的二维码应用可以轻易得到类似这样的地址,但并不会自动打开该地址,实际上针对  开头的地址做了特殊处理,会自动获取相关信息并提示确认。
在手机版访问这个页面进行确认时,server 已经同时获得了客户端信息,并通过之前保持的长连接告知浏览器。 页面每隔 1 秒或 2 秒会 get 请求该 id 对应的账号及密码,如果 id 绑定上了账号和密码,那么就可以请求到账号和密码,就可以自动登陆了。浏览器展示完长连接里包含的用户信息(头像等)后,会新开一个长连接等待客户端的确认操作,其 url 类似  。从安全的角度来说,无论如何都不会让客户端获得帐号和密码,要知道,密码这玩意腾讯自己都不敢保存(有兴趣的同学可以自行了解下 csdn 明文密码泄露事件),肯定是不可能返回给浏览器的。html怎么实现登录验证功能
而且从体感来看,怎么着都不可能是页面 1-2 秒 get 请求的,实际是通过长连接,近乎实时的获得信息。
对于验证过程,open api 一般是通过授权令牌(token)来解决的,原理是当用户通过授权后,分配一个限定条件下的令牌(如限制本机访问、限制授权有效时间、限制同时登录设备数等),使获得授权的用户仅在有限的前提下能访问相关服务。
像计算机休眠后曾做的授权就自动收回了,这样就有效的避免了在别人电脑上(尤其是网吧)打开,但忘记关闭或退出这类安全问题了。
同时,整个授权过程的验证部分在手机端进行,有效杜绝了 pc 上泛滥的各类木马、『安全工具』的监听,大大降低了帐号被盗的风险。
整个核心过程是:浏览器获得一个临时 id,通过长连接等待客户端扫描带有此 id 的二维码后,从长连接中获得客户端上报给 server 的帐号信息进行展示,并在客户端点击确认后,获得服务器授信的令牌,进行随后的信息交互过程。
在超时、网络断开、其他设备上登录后,此前获得的令牌或丢失、或失效,有效完成了安全防护。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。