知识铺垫
Http协议
说明:超文本的无状态的协议,可以跳过登录直接通过浏览器访问服务器资源。
有状态会话
session就是一种会话机制,前端cookie存储sessionId作为身份证来保留用户的登录状态。
单点登录系统设计
单系统的登录解决方案
说明:对于用户而言,web系统就是一个整体,登录/注销只要一次就够了,web系统负责管理用户在不同web子系统中的 登录/注销 状态。

多系统的登录解决方案
同域名共享cookie的方式:
单系统登录解决方案的核心是cookie,cookie携带会话id在浏览器与服务器之间维护会话状态。 但cookie是有限制的,这个限制就是cookie的域(通常对应网站的域名),浏览器发送http请求时会自动携带与该域匹配的cookie,而不是所有cookie。
问题:
群域名得统一、应用群各系统使用的技术(至少是web服务器)要相同、cookie本身不安全。
单点登录
多系统应用群登录的解决方案,只需要登录一次就可以访问所有相互信任的应用系统。
登陆业务设计
实现原理说明:
- 独立的认证中心,其他系统不提供登录入口,只接受认证中心的间接授权
- 间接授权通过令牌实现,sso认证中心验证,创建授权令牌, 子系统拿到令牌,即得到了授权,可以借此创建局部会话,局部会话登录方式与单系统的登录方式相同。
业务部分跳转到老师笔记: