这次记录一下我在项目中实现扫码登录的方案,供大家参考
1. APP 扫码登录设计说明
根据 WEB 端点击二维码登录生成一个唯一 id 存储到 redis,APP
端获取到 id 验证状态通过将 token 传到后端,后端根据 id 和携带
token 实现登录。
2. 技术支持
Redis,java,vue
3. APP 扫码登录流程图
4. APP 扫码登录流程
第一步:
在 WEB 端点击二维码登录生成一个唯一 id 存储到 Redis,并且 给这个 id 设置为未被查询状态 0,根据此 id 生成二维码
第二步:
APP 端进行扫码,获取到这个 id,查看 id 状态是否正常(如果 正常则将 id 状态修改为已查询;否则将提示用户二维码已失效并结
束本次扫码登录);同时 WEB 前端轮询发送登录请求
第三步:
APP 端界面弹出确认登录框;
用户选择确认登录——>校验 id 状态是否是已查询 用户选择取消登录——>结束本次二维码登录
第四步:
如果用户选择确认登录,APP 端校验 id 状态为已查询,则将 id 和 APP 端 token 发送到后端,后端根据 id 将 token
储存到 Redis
第五步:
后端接收到登录请求,发现此 id 已有 token 时,根据此 app 的 token 所对用的用户重新生成新的 web 端
token,返回给 web 端。此时 登录成功
第六步:
登录成功后删除 Redis 的 id