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地址