扫码登录介绍
扫码登录是一种通过扫描二维码来实现用户登录的方式。它利用移动设备(如智能手机)的扫码功能,让用户能够快速、便捷地完成登录操作,而无需手动输入用户名和密码。在扫码登录的过程中,用户首先在需要登录的应用或平台上触发扫码登录功能,系统会生成一个包含特定信息的二维码。用户随后使用移动设备上的扫码应用扫描这个二维码,将扫描结果发送回应用或平台服务器进行验证。服务器会检查二维码的有效性,并确认用户的身份,一旦验证通过,用户就可以成功登录到应用或平台中。
扫码登录本质上是请求登录方请求已登录方将登录凭证写入特定媒介的过程。这里的请求登录方为 Web 端,已登录方为 APP 端,登录凭证可以是用户信息,也可以是换取用户信息的凭证,而特定媒介是某一张二维码。
基本步骤
用户在PC端选择扫码登录——>PC端展示二维码——>用户通过APP扫一扫功能扫描二维码——>用户点击确认登录——>登录成功
详细步骤
根据二维码的状态分为待扫描,待确认和已确认阶段
待扫描阶段(1-5),这个阶段是 PC 端跟服务端的交互过程。
首先 PC 端携带设备信息向服务端发起生成二维码请求,服务端会生成唯一的二维码 ID,可以理解为 UUID,并且将 二维码 ID 跟 PC 设备信息关联起来。
PC 端接受到二维码 ID 之后,将二维码 ID 以二维码的形式展示,等待移动端扫码。此时在 PC 端会启动一个定时器,轮询查询二维码的状态。如果移动端未扫描的话,那么一段时间后二维码将会失效。
待确认阶段(6-10),这个阶段是移动端跟服务端交互的过程。
首先移动端扫描二维码,获取二维码 ID,然后将手机端登录的信息凭证(token)和 二维码 ID 作为参数发送给服务端,此时的手机一定是登录的,不存在没登录的情况。
服务端接受请求后,会将 token 与二维码 ID 关联,然后会生成一个一次性 token,这个 token 会返回给移动端,一次性 token 用作确认时候的凭证。
(临时token设计:这里其实最主要还是产品考虑,确认流程是必要的,你不小心扫一下,就登陆了,这多危险。现在还有厂家,加上了几秒之后才能确认,也一样是为了安全考虑,给你时间让你看清楚。
因为有了确认登陆这个逻辑,所以就需要临时token,这样我们才能将确认和扫码关联起来:请求中携带了临时token,这个token之前只在扫码时候返回给过手机端,通过这个凭证,可以一定程度证明扫码的是你,现在确认登陆的还是你。
同时,临时token是一次性的,只能用一次,无法再重复请求我,这也进一步提高了安全性。)
PC 端的定时器,会轮询到二维码的状态已经发生变化,会将 PC 端的二维码更新为已扫描,请确认。
已确认阶段(11-15),这是扫码登录的最后阶段。
移动端携带上一步骤中获取的临时 token ,确认登录,服务端校对完成后,会更新二维码状态,并且给 PC 端生成一个正式的 token ,后续 PC 端就是持有这个 token 访问服务端。
扫码登录完成!!!!