二维码登录本质

拿二维码扫描登录这件事来说,其实它的本质就是一种登录认证方式,二维码在中间共有 3 个状态:待扫描、已扫描待确认、已确认。

  • 在待扫描状态下,PC 端向服务端发送请求,告诉服务端我要生成用于登录的二维码,并把 PC 端设备信息也传递给服务端。服务端收到请求后,生成二维码 ID,并将 ID 与 PC 端设备信息绑定,之后把二维码 ID 返回给 PC 端。一来一回,PC 端收到二维码 ID 后,就生成了二维码。

  • 用户用手机扫完 PC 端二维码之后,获取了其中的二维码 ID,再调用服务端 API,将移动端的身份信息与二维码 ID 一起发给服务端。服务端将二者绑定,并生成一个临时 token 返回给手机端。这时候,二维码状态就变成了“已扫描”。

  • 手机端在收到临时 token 后,会弹出确认登录界面。用户点击确认时,手机端携带临时 token,调用服务端接口,告诉服务端我已经确认。服务端收到确认后,根据二维码 ID 绑定的设备信息与账号信息,生成用于 PC 端登录的 token。这时候, 这时候,二维码状态就变成了“已确认”。

由此可见,通过二维码进行扫码登录,并不是把你的账号密码从手机端传给了 PC 端,而是通过 token 认证机制来实现的。当然,如果你碰到了可疑的二维码,安全起见,还是不扫为妙。

你可能感兴趣的:(二维码登录本质)