Authing 文档文档
快速开始
概念
使用指南
开发集成 arrow
  • V2 文档
  • V3 文档
应用集成
加入 APN
开发集成
多租户(内测版)
控制台文档
多租户控制台
租户控制台
Saas 应用 Demo
快速开始
概念
使用指南
开发集成 arrow
  • V2 文档
  • V3 文档
应用集成
加入 APN
开发集成
多租户(内测版)
控制台文档
多租户控制台
租户控制台
Saas 应用 Demo
旧版
概念
  • 什么是 Authing
  • 什么是用户池
  • 什么是应用
  • 什么是认证
  • 什么是联邦认证
  • 什么是零信任网络
  • 单点登录与单点登出
  • 什么是授权
  • 认证 vs 授权
  • 什么是 JWT Token
  • 什么是 ID Token
  • 什么是 Access Token
  • 什么是 Refresh Token
  • Access Token vs Id Token
  • 理解 OIDC 与 OAuth2.0 协议

  • OIDC 常见问题
  • 理解 SAML2 协议

  • 什么是多因素认证
  • 账号生命周期管理
  • 托管登录页 vs 可嵌入登录组件
  • CIAM 与 EIAM
  • 什么是 LDAP
  • 扫码登录的原理
  • 密码学基本概念
  1. 概念
  2. /
  3. 扫码登录的原理

¶ 扫码登录的原理

更新时间: 2022-04-20 11:18:51
编辑

用一句话概括:扫码登录本质上是请求登录方请求已登录方将登录凭证写入特定媒介的过程。这里的请求登录方为 Web 端,已登录方为 APP 端,登录凭证可以是用户信息,也可以是换取用户信息的凭证,而特定媒介是某一张二维码。

具体的扫码登录流程如下:

drawing
  1. 打开登录页面,展示一个二维码,同时轮询二维码状态(web)
  2. 打开APP扫描该二维码后,APP显示确认、取消按钮(app)
  3. 登录页面展示被扫描的用户头像等信息(web)
  4. 用户在APP上点击确认登录(app)
  5. 登录页面从轮询二维码状态得知用户已确认登录,并获取到登录凭证(web)
  6. 页面登录成功,并进入主应用程序页面(web)

整个过程中,一张特定二维码起到了连接请求登录方和已登录方桥梁的作用。而二维码本质上就是通过某种约定的编码方式将一段文本信息转换为一个能够被解码识别的图片,其本质就是一段文本信息。所以,我们可以将二维码 ID、创建时间、过期时间等信息写入二维码,APP 终端通过解码二维码信息(这是终端媒介具备的基础功能),就能够识别出此二维码。
在 Web 端,一般会有一个请求生成二维码的接口,此接口会返回二维码 ID 和二维码连接,ID 用于查询二维码最新状态,链接用于展示。
这样,Web 端和 APP 端就建立起了一个共识:二维码 ID。APP 端通过授权修改二维码状态,Web 端能通过轮询监听到二维码状态变化,并获取到登录凭证,从而完成登录。
再来详细分解一下,二维码一共具有哪些状态:

  • 未扫描
  • 已扫描,等待用户确认
  • 已扫描,用户同意授权
  • 已扫描,用户取消授权
  • 已过期

APP 可以修改二维码状态,一共会用到三个接口:

  • 确认已扫描
  • 同意授权
  • 取消授权

一旦 Web 端监听到二维码状态变成了同意授权,登录就完成了。
APP 端请求这些接口时,需要带上登录凭证(这是显然的),后端接口能够从此判断同意授权的用户,从而将二维码 ID 和用户 ID 绑定起来。

更多内容,可见:

  • 扫码登录实战系列 1: 原理及流程设计 (opens new window)
  • 扫码登录实战系列 2: 后端接口实现 (opens new window)
  • 扫码登录实战系列 3: 前端 SDK 封装 (opens new window)
  • 扫码登录实战系列 4: 总结 (opens new window)
上一篇: 什么是 LDAP 下一篇: 密码学基本概念

用户身份管理

集成第三方登录
手机号闪验 (opens new window)
通用登录表单组件
自定义认证流程

企业内部管理

单点登录
多因素认证
权限管理

开发者

开发文档
框架集成
博客 (opens new window)
GitHub (opens new window)
社区用户中心 (opens new window)

公司

400 888 2106
sales@authing.cn
北京市朝阳区北辰世纪中心 B 座 16 层(总)
成都市高新区天府五街 200 号 1 号楼 B 区 4 楼 406 室(分)

京ICP备19051205号

beian京公网安备 11010802035968号

© 北京蒸汽记忆科技有限公司