多端同步登录解决方案

本篇主要介绍一个多端同步登录的实现方案.

服务示例.png

- 项目背景

  • 四个客户端, 且都是前后端分离的项目
  • 一个 api server, 为各个客户端提供接口服务
  • 一个登录中心, 各个客户端的登录都要跳转到登录中心实现

这种同步登录的实现还用到一个前端库: cross-storage. 这个库可以跨域写入localstorage, 这是前提.

实现步骤:
  1. 需要登录, 各个客户端跳转到登录中心进行登录

  2. 登录中心校验账户和密码, 登录成功写入session

  3. 登录中心使用账户密码请求api-server的登录接口, 获取认证token

  4. 登录中心将认证token通过 cross-storage 写入到各个客户端的localstorage中

以上就是实现这种机制的大概流程, 各个客户端拿到token之后就可以与 api-server 进行通信了.

当然还有很多实现细节在这里没有提到, 比如token刷新通知到各个客户端, 同步退出等等. 欢迎与大家交流.

推荐阅读更多精彩内容