微信、支付宝、微博等web端通过APP扫码登陆的实现
我们在使用微信电脑、网页版时,会有通过APP应用扫码登陆的入口,那么它是怎么实现的呢?
常见的扫码登陆界面如下图:
我们在PC端打开这些应用或者WEB页面时(一下统称为登陆界面),我们会看到一个后台服务器会生成一个包含了全局唯一ID(UUID)的二维码,登陆界面会以轮询或者websocket等形式和后台保持通信,查询用户是否扫了这个二维码,当用户通过手机端应用扫描这个二维码后,会将当前登陆的用户ID和扫描到的UUID提交给后台,此时后台将对应的用户信息返回给PC端的应用或者浏览器,此时PC端得到了用户信息,登陆成功。
有兴趣的可以使用微信扫描PC端支付宝的登陆二维码信息,就可以很容易理解。
流程如下图: