不知从什么时候起,二维码成了我们日常生活不可或缺的一道风景了。购物扫个码,吃饭扫个码,坐公交也扫个码。
它在为我们行便之时,我们也不禁会想:这二维码安全吗?会不会泄漏我的个人信息?更深度的用户还会考虑:我的系统是不是也可以搞一个二维码来推广呢?
这时候就需要了解一下二维码背后的技术和逻辑了!
二维码登录本质上也是一种登录认证方式。既然是登录认证,要做的也就两件事情:
在认识二维码之前我们先看一下一维码。
所谓一维码,也就是条形码,超市里的条形码--这个相信大家都非常熟悉,条形码实际上就是一串数字,它上面存储了商品的序列号。
二维码其实与条形码类似,只不过它存储的不一定是数字,还可以是任何的字符串,你可以认为,它就是字符串的另外一种表现形式。
认识了二维码,我们了解一下移动互联网下的系统认证机制。
前面我们说过,为了安全,手机端它是不会存储你的登录密码的。 但是在日常使用过程中,我们应该会注意到,只有在你的应用下载下来后,第一次登录的时候,才需要进行一个账号密码的登录, 那之后呢 即使这个应用进程被杀掉,或者手机重启,都是不需要再次输入账号密码的,它可以自动登录。
其实这背后就是一套基于token的认证机制,我们来看一下这套机制是怎么运行的:
从前面这个流程,我们可以看到,客户端不会也没必要保存你的密码,相反,它是保存了token。可能有些同学会想,这个token这么重要,万一被别人知道了怎么办。实际上,知道了也没有影响, 因为设备信息是唯一的,只要你的设备信息别人不知道, 别人拿其他设备来访问,验证也是不通过的。
可以说,客户端登录的目的,就是获得属于自己的token。
基本流程
可以看到,二维码在中间有三个状态, 待扫描,已扫描待确认,已确认。
按二维码不同状态来看, 首先是等待扫描状态,用户打开PC端,切换到二维码登录界面时。
PC端向服务端发起请求,告诉服务端,我要生成用户登录的二维码,并且把PC端设备信息也传递给服务端;
服务端收到请求后,它生成二维码ID,并将二维码ID与PC端设备信息进行绑定;
然后把二维码ID返回给PC端;
PC端收到二维码ID后,生成二维码(二维码中肯定包含了ID);
为了及时知道二维码的状态,客户端在展现二维码后,PC端不断的轮询服务端,比如每隔一秒就轮询一次,请求服务端告诉当前二维码的状态及相关信息。
总结看图~
文章部分素材来源:掘金
页面更新:2024-05-22
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号