面试:二维码扫码登陆的原理

1.移动互联网下的系统认证机制在这里插入图片描述

认证:把账号密码设备信息全部发给服务端
服务端用这些组合生成token返回给客户端
后面客户端的请求都带着token和设备信息去
服务端解析token和设备信息对比,通过才放行。
所以客户端不会也没必要保存密码

一个问题,请求的时候,除了带上token和设备信息,还会不会带上账号信息

如果不带会有问题,比如应用分身,设备一样,应用2拿了应用1的token去请求用户信息,那么用户2就可以获得应用1的用户信息。

2.电脑端扫码登录原理

扫码登录也是登录认证方式:本质上还是两个问题
告诉系统我是谁
向系统证明我是谁

2.1流程

在这里插入图片描述
二维码状态及其对应拥有的信息如下:
在这里插入图片描述

2.1.1 二维码准备阶段

在这里插入图片描述

  • 二维码是服务端生成的,服务端生成的时候会绑定客户端设备信息
  • PC端收到的二维码里面包含二维码ID
  • PC端会不断轮训二维码的状态(比如每秒一次)
2.1.2 扫描状态切换
  • 手机通过扫二维码获得二维码ID,然后把二维码ID和身份信息一起发给服务端
  • 服务端把二维码ID和身份信息绑定,生成临时token给手机
  • PC轮训二维码状态,发现已扫描
  • 临时token只能用一次
2.1.3 确认登录流程在这里插入图片描述
  • 服务端发送临时token和确认登录页面给手机端
  • 手机携带临时token访问服务端确认登录接口,告诉服务我已确认
  • 服务器生成PC端token
  • PC端通过轮训获取token和二维码登录状态,进入登录页面。

二维码的内容可能是什么?

  • 可以是二维码ID
  • 可以是包含二维码ID的一个url地址
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值