扫码登陆
ddatsh
通过二维码
,用可信任设备
(如自己手机)控制不可信任设备
上的登录行为
-
更方便
省去不便手动输入的设备(如电视)上输入的环节
-
更安全
避免在安全等级低的设备和环境(公共电脑、Web页面)输入密码
步骤
- 非授信设备访问服务端生成token,并将token通过二维码展示在界面上
- 授信设备扫描获取此token,用此访问服务端获取非授信设备信息并展示,请用户确认
- 用户确认在授信设备上确认后,授信设备访问服务端,告知服务端该token已被用户确认可用来登录
- 非授信设备使用token登录。非授信设备并不知道用户何时会确认,所以需要轮询服务端,一直使用token尝试登录,直到成功
安全点
- 接口https
- token有效期如5分钟,且一次有效
- 展示被扫码端设备信息并请用户确认,必须有,不能省略
- token四个状态:NEW(新生成)、SCANNED(已扫描待确认)、CONFIRMED(已确认)、USED(已使用)
- token登录5种返回:token不合法、待扫描、已扫描待确认、登录成功并返回用户登录凭证、token已被使用过,失败的情况可以展示相应的信息以提升用户体验
- token只允许在生成该token的设备上进行登录,这需要有支持防伪造的唯一标识设备的能力,比如设备指纹
- 扫码端必须是授信设备
- Web端不能成为扫码端