前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >聊聊扫码登录

聊聊扫码登录

作者头像
三哥
发布2021-07-20 11:31:31
1.9K0
发布2021-07-20 11:31:31
举报
文章被收录于专栏:java工会java工会

日常小科技

二维码扫码登录这个操作,在我们日常生活中频频出现,在办公室的你是不是每天都要登陆电脑微信,这背后的原理又是什么呢?

一般的使用场景:在手机设备已经登录的情况下,需要在电脑PC端应用或者网页进行登录。此时用手机的应用扫描PC端生成的一个二维码从而进行登录。

1

什么是二维码

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

二维条码/二维码(2-dimensional bar code)是用某种特定的几何图形按一定规律在平面(二维方向上)分布的、黑白相间的、记录数据符号信息的图形;在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理:它具有条码技术的一些共性:每种码制有其特定的字符集;每个字符占有一定的宽度;具有一定的校验功能等。同时还具有对不同行的信息自动识别功能、及处理图形旋转变化点。

2

过程解析

  1. 手机端登陆应用
  2. PC端生成二维码,等待扫描
  3. 手机应用扫描
  4. 手机端确认登陆
  5. PC端登陆成功

3

基于token的登陆机制

一般我们在手机上下载好应用之后,需要进行第一次登陆,可以试用账号-密码或者手机号-验证码登陆。

在登陆的时候,手机端不仅仅传送了账号密码,还传送了设备信息。此时服务端做了几件事情:

  1. 将登陆账号和设备关联起来。
  2. 账号信息正确后,服务端生成一个token凭证。并这个token将账号、设备关联,进入缓存或者持久化。
  3. 将token返回给移动端

移动端在收到token后,将token保存在本地。在访问客户端的接口时,带上token。一般的,移动端也会带上设备信息进行访问,这样可以保证在token被泄露后,也不能够随意访问服务端。

4

二维码扫码登录原理

扫码登录可以分为三个阶段:等待扫描,已扫描待确认,已确认

1.等待扫描

首先,PC端的应用携带设备信息向服务端发起二维码请求。服务端生成唯一的二维码,并与设备信息进行绑定。在设置超时时长后,将二维码返回给PC端的应用。

PC端应用在收到二维码后进行展示,等待扫描。此时PC端应用会定时轮询二维码的状态,超时则会显示二维码失效。

2.已扫描待确认

移动端扫描二维码,获取二维码的ID。将token,二维码ID,设备信息发送给服务端。

服务端接收到请求后,将token和二维码ID关联。并重新生成一个临时token返回给移动端。

此时,PC端会轮询到二维码的状态变化,会显示到“已扫描,请确认”的状态。

3.已确认

移动端确认登陆,将收到的临时token携带信息发送到服务端。

服务端更改二维码状态为“已确认”,并生成token进行缓存或者持久化,返回给pc端。

此时,PC端应用会轮询到二维码的状态变为“登陆”,并且获取到了生成的token。此时就可以根据token访问服务端的内容了。

整个流程如上图所示。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-07-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 java工会 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
访问管理
访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档