您好,欢迎来到12图资源库!分享精神,快乐你我!我们只是素材的搬运工!!
  • 首 页
  • 当前位置:首页 > 开发 > WEB开发 >
    你了解二维码扫描背后的登录原理吗?
    时间:2020-04-01 12:28 来源:网络整理 作者:网络 浏览:收藏 挑错 推荐 打印

    扫二维码登录如今比较常见,比如微信、支付宝等 PC 端登录,并且似乎每款 APP 都支持扫码登录,不搞个扫码登录都不好意思。作为技术人员,不知道您对这背后的完成逻辑能否感兴味,反正我是不断都对这背后完成猎奇。最近刚美观到一个关于扫码登录原理的视频,于是就整理出来了这篇文章,希望对您有所协助。

    你了解二维码扫描背后的登录原理吗?

    本文共三个主题:

    什么是二维码。

    移动端基于 token 的认证机制。

    二维码扫码登录的原理。

    1、什么是二维码

    二维码又称二维条码,常见的二维码为QR Code,QR全称Quick Response,是一个近几年来移动设备上超盛行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型。----来自百度百科

    在商品上,普通都会有条形码,条形码也称为一维码,条形码只能表示一串数字。二维码要比条形码丰厚很多,可以存储数字、字符串、图片、文件等,比如我们可以把 存储在二维码中,扫码二维码我们就可以获取到百度的地址。

    能够用文字说起来还是比较难了解,您可以百度:草料二维码,一款二维码生成和解析工具,玩一玩你就知道二维码是个啥了。

    2、移动端基于 token 的认证机制

    在了解扫码登录原理之前,有必要先了解移动端基于 token 的认证机制,对了解扫码登录原理还是十分有协助的。基于 token 的认证机制跟我们常用的账号密码认证方式有较大的不同,安全系数比账号密码要高,假设每次验证都传入账号密码,那么被劫持的概率就变大了。

    基于 token 的认证机制流程图,如下图所示:

    基于token的认证机制

    基于 token 的认证机制,只要在第一次运用需求输入账号密码,后续运用将不在输入账号密码。「其真实登陆的时分不只传入账号、密码,还传入了手机的设备信息。在效劳端验证账号、密码正确后,效劳端会做两件事」。

    第一,将账号与设备关联起来,在某种意义上,设备信息就代表着账号。

    第二,生成一个 token 令牌,并且在 token 与账号、设备关联,相似于key/value,token 作为 key ,账号、设备信息作为value,耐久化在磁盘上。

    将 token 前往给移动端,移动端将 token 存入在本地,往后移动端都经过 token 拜访效劳端 API ,当然除了 token 之外,还需求携带设备信息,由于 token 能够会被劫持。带上设备信息之后,就算 token 被劫持也没有关系,由于设备信息是独一的。

    这就是基于 token 的认证机制,将账号密码换成了 token、设备信息,从而提高了安全系数,可别小看这个 token ,token 是身份凭证,在扫码登录的时分也会用到。

    3、二维码扫码登录的原理

    好了,知道了移动端基于 token 的认证机制后,接上去就进入我们的主题:二维码扫码登陆的原理。先上二维码扫码登录的流程图:

    你了解二维码扫描背后的登录原理吗?

    扫码登录全流程

    扫码登录可以分为三个阶段:「待扫描、已扫描待确认、已确认」。我们就逐一来看看这三个阶段。

    「1、待扫描阶段」

    待扫描阶段也就是流程图中 1~5 阶段,即生成二维码阶段,这个阶段跟移动端没有关系,是 PC 端跟效劳端的交互进程。

    首先 PC 端携带设备信息向效劳端发起生成二维码央求,效劳端会生成独一的二维码 ID,你可以了解为 UUID,并且将 二维码 ID 跟 PC 设备信息关联起来,这跟移动端登录有点相似。

    PC 端接遭到二维码 ID 之后,将二维码 ID 以二维码的方式展现,等候移动端扫码。此时在 PC 端会启动一个定时器,轮询查询二维码的形状。「假设移动端未扫描的话,那么一段时间后二维码将会失效。」

    「2、已扫描待确认阶段」

    流程图中第 6 ~ 10 阶段,我们在 PC 端登录微信时,手机扫码后,PC 端的二维码会变成已扫码,请在手机端确认。这个阶段是移动端跟效劳端交互的进程。

    首先移动端扫描二维码,获取二维码 ID,「然后将手机端登录的信息凭证(token)和 二维码 ID 作为参数发送给效劳端」,此时的手机一定是登录的,不存在没登录的状况。

    效劳端接受央求后,会将 token 与二维码 ID 关联,为什么需求关联呢?你想想,我们运用微信时,移动端参加, PC 端是不是也需求参加,这个关联就有点把子作用了。然后会「生成一个一次性 token,这个 token 会前往给移动端,一次性 token 用作确认时分的凭证」。

    PC 端的定时器,会轮询到二维码的形状曾经发作变化,会将 PC 端的二维码更新为已扫描,请确认。

    「3、已确认」

    流程图中的 第 11 ~ 15 步骤,这是扫码登录的最后阶段,移动端携带上一步骤中获取的暂时 token ,确认登录,「效劳端校正完成后,会更新二维码形状,并且给 PC 端生成一个正式的 token ,后续 PC 端就是持有这个 token 拜访效劳端」。

    PC 端的定时器,轮询到了二维码形状为登录形状,并且会获取到了生成的 token ,完成登录,后续拜访都基于 token 完成。

    在效劳器端会跟手机端一样,维护着 token 跟二维码、PC 设备信息、账号等信息,后续的认证也是基于 token 和设备信息来完成。

    到此,二维码扫描登录原理就差不多了,二维码扫描登录在原理上不难了解,跟 OAuth2.0 有一丝的相似之处,但是完成起来能够就比较复杂。

    希望此文对您的学习或许任务有所协助。同时希望您在评论区聊聊您的扫码登录任务阅历,祝好。

    【编辑引荐】

    AI技术的“践行者” -云测试成为企业降本增效利器

    如何预备大厂面试?如何变的更强?我咨询了身边的技术专家之后终于失掉答案!

    技术趋向:是什么让MVC悄然消逝的?

    谷歌重磅开源新技术:5行代码打造有限宽神经网络模型

    5000字解析:前端五种跨平台技术

    (责任编辑:admin)