5、设计思路及折衷
在常见的web站点中,当存在多个站点需要登陆,而这些站点都是使用同一套的登陆流程,
当用户在其中一个站点登陆后,其他站点并未记录用户的登陆信息,导致用户每次登陆新
站点需要进行新的登陆过程,这样给用户的体验是十分的不友好的,这时候就可以使用单点登陆,
单点注销的方式实现用户的登陆流程。
由于站点是使用session存储用户信息的,所以该设计模式是针对session存储用户信息的设计方式,
首先以上系统1,系统2,sso认证中心都可以当作不同的站点,但是是使用同一套用户体系。为了实现单点
登陆,需要一个站点记录各个站点状态,就是sso认证中心。这存在唯一的登陆入口,就是sso认证中心提供
的登陆地址。当用户访问系统1时,如果系统1判断用户已经登陆,那么直接访问系统1站点内的资源,如果用户未登录
则请求到sso认证中心,判断认证中心,用户是否登陆。
一:如果认证中心记录用户已经登陆,则将登陆后的用户信息通过,jwt加密成token,转发给系统1,系统1在通过认证中心判断token是否有效,如果token正确,系统解析token后,将用户信息存储到session,其中token通过存储到cookie,配置不同子域同cookie,这样不同的站点只要顶级域名相同也可以获取同一个cookie。
二:如果认证中心记录用户未登陆,则跳转到sso的登陆入口。
三:以上过程需要将系统1的访问地址作为参数,在跳转过程作为参数传