SSO是什么?
sso:单点登录。单点登录就是一个子系统登录之后,其他系统就不用在登录了(一个域名下进行登录,其他的域名就都有了登录状态
SSO鉴权,就是当我们登录到A系统成功之后,A系统给B系统一个凭证,通过对这个凭证的验证,验证成功,就可以登录B系统。
流程
就比如我们在首页登录,点击登录,跳转到登录系统,完成登录后跳回首页页面,同时响应一个cookie去首页,这个cookie存储一个就是能认证用户是否登录的一个数据,这条cookie是能被其他页面互相访问的。
cookie要是能被其他子系统带到服务器,cookie的域要是所有子系统都相同的域,所以登录过后,向子系统写入cookie的时候,domain中是应该包含着他们的主域名,因为主域名都是相同的。
其他的子系统拿到了登录域的cookie后,但是他们的服务器后台是不承认的,所以需要统一先去访问登录系统的后台,登录系统的后台提供了一个判定的方法,登录系统的后台放行的话,就可以去访问自己的后台服务器。
其他子系统再去请求服务器的时候就会把刚才响应的cookie带着,这个cookie中保存用于认证用户是否登录的信息(token),还有自己的域名,然后服务器就能拿到这个cookie去判断他们是否登录了。
示例:
1、假如一个微服务有两个系统,一个是推送服务,一个是
当触发推送平台前端时,推送平台携带着token去请求推送平台的后端;
2、之后,推送平台的后端调用sso接口去看这个token是否有效,如果有效就放行,如果无效就给前端一个报错,前端根据报错跳转到sso的登录页面。
3、登录后sso的前端去跳转到推送平台,推送平台的前端在url上截取token,再执行第一步。