顶级域名不同怎么办?

上一节单点登录是基于相同顶级域名做的,那么如果顶级域名都不一样,咋办?比如 www.imooc.com要和www.mukewang.com的会话实现共享,这个时候又该如何?!如下图,这个时候的cookie由于顶级域名不同,就不能实现cookie跨域了,每个站点各自请求到服务端,cookie无法同步。比如,www.imooc.com下的用户发起请求后会有cookie,但是他又访问了www.abc.com,由于cookie无法携带,所以会要你二次登录。
不同顶级域名的单点登录 - 图1
那么遇到顶级域名不同却又要实现单点登录该如何实现呢?我们来参考下面一张图:
不同顶级域名的单点登录 - 图2
如上图所示,多个系统之间的登录会通过一个独立的登录系统去做验证,它就相当于是一个中介公司,整合了所有人,你要看房经过中介允许拿钥匙就行,实现了统一的登录。那么这个就称之为CAS系统,CAS全称为Central Authentication Service即中央认证服务,是一个单点登录的解决方案,可以用于不同顶级域名之间的单点登录。那么在咱们课程中呢目前的项目结构源码不需要去破坏,我们只需要构建两个静态站点来测试使用即可。
在CAS中的具体的流程参考如下时序图:
不同顶级域名的单点登录 - 图3
上图的流程具体分为两阶段,大家先看一下,当做预习,这张图的流程以及具体实现我们会后面视频课中来讲解和完成。