知道为啥扫一扫二维码,你就能登陆应用吗?

不知从什么时候起,二维码成了我们日常生活不可或缺的一道风景了。购物扫个码,吃饭扫个码,坐公交也扫个码。

它在为我们行便之时,我们也不禁会想:这二维码安全吗?会不会泄漏我的个人信息?更深度的用户还会考虑:我的系统是不是也可以搞一个二维码来推广呢?

这时候就需要了解一下二维码背后的技术和逻辑了!

知道为啥扫一扫二维码,你就能登陆应用吗?

二维码登录的本质

二维码登录本质上也是一种登录认证方式。既然是登录认证,要做的也就两件事情:

认识二维码

在认识二维码之前我们先看一下一维码。

知道为啥扫一扫二维码,你就能登陆应用吗?

所谓一维码,也就是条形码,超市里的条形码--这个相信大家都非常熟悉,条形码实际上就是一串数字,它上面存储了商品的序列号。

二维码其实与条形码类似,只不过它存储的不一定是数字,还可以是任何的字符串,你可以认为,它就是字符串的另外一种表现形式。

系统认证机制

认识了二维码,我们了解一下移动互联网下的系统认证机制。

前面我们说过,为了安全,手机端它是不会存储你的登录密码的。 但是在日常使用过程中,我们应该会注意到,只有在你的应用下载下来后,第一次登录的时候,才需要进行一个账号密码的登录, 那之后呢 即使这个应用进程被杀掉,或者手机重启,都是不需要再次输入账号密码的,它可以自动登录。

其实这背后就是一套基于token的认证机制,我们来看一下这套机制是怎么运行的:

知道为啥扫一扫二维码,你就能登陆应用吗?

知道为啥扫一扫二维码,你就能登陆应用吗?

从前面这个流程,我们可以看到,客户端不会也没必要保存你的密码,相反,它是保存了token。可能有些同学会想,这个token这么重要,万一被别人知道了怎么办。实际上,知道了也没有影响, 因为设备信息是唯一的,只要你的设备信息别人不知道, 别人拿其他设备来访问,验证也是不通过的。

可以说,客户端登录的目的,就是获得属于自己的token。

扫描二维码登录的一般步骤

基本流程

知道为啥扫一扫二维码,你就能登陆应用吗?

  1. 扫码前,手机端应用是已登录状态,PC端显示一个二维码,等待扫描
  2. 手机端打开应用,扫描PC端的二维码,扫描后,会提示"已扫描,请在手机端点击确认"
  3. 用户在手机端点击确认,确认后PC端登录就成功了
知道为啥扫一扫二维码,你就能登陆应用吗?

可以看到,二维码在中间有三个状态, 待扫描,已扫描待确认,已确认。

  1. 二维码的背后它一定存在一个唯一性的ID,当二维码生成时,这个ID也一起生成,并且绑定了PC端的设备信息;
  2. 手机去扫描这个二维码;
  3. 二维码切换为 已扫描待确认状态, 此时就会将账号信息与这个ID绑定;
  4. 当手机端确认登录时,它就会生成PC端用于登录的token,并返回给PC端。

二维码准备

按二维码不同状态来看, 首先是等待扫描状态,用户打开PC端,切换到二维码登录界面时。

知道为啥扫一扫二维码,你就能登陆应用吗?

PC端向服务端发起请求,告诉服务端,我要生成用户登录的二维码,并且把PC端设备信息也传递给服务端;

服务端收到请求后,它生成二维码ID,并将二维码ID与PC端设备信息进行绑定;

然后把二维码ID返回给PC端;

PC端收到二维码ID后,生成二维码(二维码中肯定包含了ID);

为了及时知道二维码的状态,客户端在展现二维码后,PC端不断的轮询服务端,比如每隔一秒就轮询一次,请求服务端告诉当前二维码的状态及相关信息。

扫描状态切换

知道为啥扫一扫二维码,你就能登陆应用吗?

  1. 用户用手机去扫描PC端的二维码,通过二维码内容取到其中的二维码ID;
  2. 再调用服务端API将移动端的身份信息与二维码ID一起发送给服务端;
  3. 服务端接收到后,它可以将身份信息与二维码ID进行绑定,生成临时token。然后返回给手机端;
  4. 因为PC端一直在轮询二维码状态,所以这时候二维码状态发生了改变,它就可以在界面上把二维码状态更新为已扫描。

状态确认

知道为啥扫一扫二维码,你就能登陆应用吗?

  1. 手机端在接收到临时token后会弹出确认登录界面,用户点击确认时,手机端携带临时token用来调用服务端的接口,告诉服务端,我已经确认;
  2. 服务端收到确认后,根据二维码ID绑定的设备信息与账号信息,生成用户PC端登录的token;
  3. 这时候PC端的轮询接口,它就可以得知二维码的状态已经变成了"已确认"。并且从服务端可以获取到用户登录的token;
  4. 到这里,登录就成功了,后端PC端就可以用token去访问服务端的资源了。

总结

知道为啥扫一扫二维码,你就能登陆应用吗?

总结看图~

文章部分素材来源:掘金

展开阅读全文

页面更新:2024-05-22

标签:数据结构   二维码   条形码   字符串   绑定   服务端   账号   客户端   状态   密码   用户   设备   系统   手机   科技

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top