简述手机扫码登陆原理

0
字数 292
阅读时间 1 分钟

以前以为微信、qq 扫码登陆实现难度很高,一定是基于 WebSocket 等长连接技术实现的,结果最近看了一下 qq 的扫码登陆请求发现完全不是那一回事,原理相当简单。

简述流程

整个扫码登陆可以简化为 5 步:

  1. 浏览器请求到二维码(二维码包含一个二维码标识,该二维码标志存在 Redis 中)
  2. 手机扫码,请求服务器该二维码标志是否已过期,返回授权页面
  3. 用户确认授权则将二维码标志和用户标识传入服务器,判断二维码标志和用户标识是否有效,有效则生成授权 token,并返回授权结果到手机端
  4. 浏览器循环请求服务器获取授权状态,如果已扫码则返回已扫码状态,如果已授权则返回授权 token
  5. 浏览器携带授权 token 请求限制资源

基于Github Actions实现Hexo博客自动切换主题 HOTP&TOTP(短信验证码&两步验证码)