App 扫描二维码登陆网站
+-----------+-----------+-----------+
| App | Web | Server |
+-----------+-----------+-----------+
| | 1.qrcode | |
| 2.scan | 2.loop | |
| 3.send | | |
| | | 4.auth |
| | | 5.push |
| 6.receive | 6.refresh | |
+-----------+-----------+-----------+
Web 请求扫码登陆的 qrcode
Web 轮询 qrcode 的状态
App 开启扫码,并点击登陆(或者取消登陆)
服务端收到 App 的登陆请求,进行认证
成功登陆
Web 轮询到状态变更,刷新页面
二维码状态
+-------+ +---------+ +--------+
| valid | ----> | scanned | ---> | cancel |
+-------+ +---------+ +--------+
| (over time) |
v v
+---------+ +---------+
| invalid | <---- | confirm |
+---------+ +---------+
valid
:1
二维码有效scanned
:2
二维码已被扫描confirm
:3
用户确认登陆invalid
:4
二维码失效,例如超时,或者用户拒绝登陆,或者登陆后失效cancel
:5
用户取消二维码登陆