今天不聊网站开发,今天来聊一聊现在比较盛行的扫码登录的工作原理。
需求介绍
*要,介绍下什么是扫码登录。现在,大部分同学手机上都装有qq和淘宝,天猫等这一类的软件。而开发这些app的公司,都有他们相对应的网站。为了让顾客在运用他们的网站时,登录愈加方便和保险。这些公司供给了, 运用手机,扫一扫,就可以登录的服务。网页登录时的作用如下:
扫码登录工作原理
扫码登录工作原理
有很多小伙伴或许会感到很奇特,网页上仅仅显现了个二维码,它怎样就知道是哪个手机扫到了二维码,而且开展登录的呢?而且,登录完结今后,还能直接把顾客信息显现给顾客,真的是很奇特啊。
原理解说
网页端+服务器
接下来便是关于这样的服务的具体完结。*要,或许说一下原理:顾客翻开网站的登录页面的时候,向浏览器的服务器发送获取登录二维码的申请。服务器收到申请后,随机生成一个uuid,将这样的id作为key值存入redis服务器,一同设置一个过期时刻,再过期后,顾客登录二维码需求开展改写从头获取。一同,将这样的key值和本公司的验证字符串合在一同,经过二维码生成接口,生成一个二维码的图片(二维码生成,网上有很多现成的接口和源码,这儿不再介绍。)然后,将二维码图片和uuid一同回来给顾客浏览器。
浏览器拿到二维码和uuid后,会每隔一秒向浏览器发送一次,登录能否胜利的申请。申请中带着有uuid作为当前页面的标识符。这儿有的同学就会奇怪了,服务器只存了个uuid在redis中作为key值,怎样会有顾客的id信息呢?
这儿的确会有顾客的id信息,这样的id信息是由手机服务器存入redis中的。具体操作如下:
手机端+服务器
话说,浏览器拿到二维码后,将二维码展现到网页上,并给顾客一个提示:请掏出您的手机,翻开扫一扫开展登录。顾客拿出手机扫描二维码,就可以获得一个验证信息和一个uuid(扫描二维码获取字符串的功用在网上相同有很多demo,这儿就不具体介绍了)。由于手机端现已开展过了登录,在造访手机端的服务器的时候,参数中都回带着一个顾客的token,手机端服务器可以从中解析到顾客的userId(这儿从token中取值而不是手机端直接传userid是为了保险,直接传userid或许会被截获和修正,token是加密的,被修正的风险会小很多)。手机端将解析到的数据和顾客token一同作为参数,向服务器发送验证登录申请(这儿的服务器是手机服务器,手机端的服务器跟网页端服务器不是同一台服务器)。服务器收到申请后,*要比照参数中的验证信息,断定能否为顾客登录申请接口。假如是,回来一个确认信息给手机端。
手机端收到回来后,将登录确认框显现给顾客(防止顾客误操作,一同使登录愈加人性化)。顾客确认是开展的登录操作后,手机再次发送申请。服务器拿到uuId和userId后,将顾客的userid作为value值存入redis中以uuid作为key的键值对中。
登录胜利
然后,浏览器再次发送申请的时候,浏览器端的服务器就可以获得一个顾客Id,并调用登录的方法,声成一个浏览器端的token,再浏览器再次发送申请的时候,将顾客信息回来给浏览器,登录胜利。这儿存储顾客id而不是直接存储顾客信息是由于,手机端的顾客信息,不一定是和浏览器端的顾客信息完全一致。
登录原理图如下:
热点文章
最新文章