我拿微博登录进行了调试,如下流程
1. 选择二维码登录方式
pc会向服务端发送一个请求,获取一个二维码图片和一个id信息
2. 生成二维码之后
pc会轮询向服务端发送请求,获取二维码当前的状态
-
二维码未被扫描之前,返回状态未使用
-
二维码被扫描之后,状态改变
3. 客户端扫描二维码
客户端扫描二维码之后,会携带扫描的二维码信息和客户端的登录信息,向服务端发送请求,将两者相关联,并得到一个临时token(只能使用一次,为了保证扫描和确认的是同一个机器)
4. 客户端点击确认
客户端点击确认后,会携带上一步的token发送请求
5. 服务端生成PC使用token
PC端轮询得到已确认登录,并且拿到登录信息,刷新页面状态
另外 二维码如果超过一段时间未被扫描或者确认登录,会失效