1. 用户访问网站A,需要认证登录。网站A重定向至登录站SSO(这里会走第五步)。
  2. 如果SSO判断用户没有登录则需要用户提交口令登录。登录成功之后在SSO站点域名下面写上关于SSO的SESSION_ID Cookie 并且重定向(带上一段token)至网站A。
  3. 网站A拿到token之后去后端检查token有效性,有效则用户登录。
  4. 接下来用户访问网站B,需要认证登录,重定向到登录站SSO。
  5. SSO 检查当前域名下是否有已经登录过的Cookie 如果有直接生成token 重定向至原来的网站。
  6. 接下来走第三步。

所有站点的Auth 中间件都会去 SSO 判断用户是否登录。 如果用户退出登录,则任何站点后端会去SSO中心注销当前用户登录信息。 前后端分离状态下,任意站点都会发起一个请求去获取用户信息,判断用户是否登录。