扫码登录
1 概述
在日常 Web 端产品的使用中,一般都会支持扫码登录,这种方式操作简单,相对传统的手机号登录等方式速度更快、安全性更高,还可以增加自家产品的粘合度。
2 登录原理
扫码登录本质是解决将 APP 端的用户登录信息(通常是 Token)通过扫码的形式安全稳定地同步给 Web 端。

1)用户打开 Web 端网页,进入扫码登录的界面;
2)从 Web 端服务器获取二维码的图并获取其状态;
3)Web 端服务器在生成二维码时,会生成一个 uuid 和二维码进行关联,并将 uuid 存入 db 记录中;
4)用户打开 APP 端,对着二维码进行扫码授权操作;
5)APP 客户端从二维码中读取到 uuid,带着 APP 内的身份信息访问 APP 端服务器;
6)APP 端服务器获取到用户的身份信息后,将用户 id 更新到 db 中对应 uuid 的记录中,此时 Web 服务器就能拿到对应的用户 id,之后生成登录身份信息返回给浏览器,即用户在 Web 端完成了登录;
3 实现方案
基于以上分析,我们可以将扫码登录分为两个步骤:获取扫码状态和获取用户登录信息。
3.1 获取扫码状态
用户在 Web 端页面看到二维码信息后,会使用客户端进行扫码授权,而 Web 端需要尽快获取到二维码的状态(已扫码、已过期、已取消、已授权)并同步到网页中展示给用户, 现在有3种方案:
3.1.1 长链接
Web 端访问服务器获取二维码状态时,服务器是阻塞了请求,等到二维码的状态变更后才会返回结果,这

本文详细解析了扫码登录的工作原理,对比了长链接、轮询和长轮询方案的优缺点,介绍了获取用户登录信息的不同途径,以及如何通过安全措施保障同步过程。重点关注微信平台和其他厂商的选择,以及如何根据业务需求选择最合适的方案和安全防护措施。

9万+

被折叠的 条评论
为什么被折叠?



