扫码登录的原理,其实很简单。
扫码登录的本质是,通过已经登录过的 App 应用,扫描未登录的 Web 端程序中的二维
码, 通过某种机制触发登录凭证的写入从而实现 Web 端自动登录的过程。
1、首先,在网页端打开登录页面,展示一个二维码,这个二维码有一个唯一编号是服
务端生成的。然后浏览器定时轮询这个二维码的状态。
2、接着,APP 扫描这个二维码,把 APP 的 token 信息、二维码 ID 发送给 Server 端,
Server 收到请求后修改二维码的扫码状态,并生成一个临时 token
3、此时,网页端展示的二维码状态会提示已扫码,待确认。 而 APP 端扫码之后,会
提示确认授权的操作。
4、于是,用户确认登录后,携带临时 token 给到 server,server 端修改二维码状态
并为网页端生成授权 token
5、最后,网页端轮询到状态变化并获取到 token,从而完成扫码授权。
不难发现,整个实现过程并不难,核心的设计就是一个特定的二维码,去连接了 APP
端和网页端。