服务器拿到 uuId 和移动端的用户信息后,修改用户的状态,将登录成功的状态和用户信息返回给 pc 端。
pc 端轮询得到登录成功的状态,获取登录信息,登录成功!
1.3 图解
PC 端检测二维码的状态不止轮询一种方式,还有我们熟悉的 socket 也是可以的
socket 的方式:PC 端保持着与服务器的长连接,当手机端扫描二维码后,带着解析得到的二维码 ID 第一次发送给服务器,当服务器收到这个请求后,代表用户已经扫描了二维码,这时服务器就可以通过 socket 告知 PC 端二维码已被扫描,等待确认;之后手机端不论是取消登录还是确认登录,都会相应的请求服务器,服务器收到请求会根据相应的逻辑处理,进而通知 PC 端更新相应的状态
轮询方式:轮询方式即在 PC 端创建一个定时器,每隔一段时间请求服务器查询状态的更新情况,然后更新网页的显示信息。当时这个定时器得控制好启动时机和生命周期,因为 PC 端的二维码有可能一直没有被扫描,或者扫描之后没有下一步操作了,这时,如果没有控制好这个定时器,PC 端就会一直地请求服务器查询,造成资源浪费和一定的性能损耗。
扫描下方二维码,收藏关注,及时获取答案以及详细解析,同时可解锁800+道前端面试题。
扫码登录原理
扫码登录,可以分为移动端与服务端的交互和 pc 端与服务端的交互两个过程。
1.1 pc 端与服务端
1.2 移动端与服务端
1.3 图解