跨域单点登录系统的设计与实现
一、跨域单点登录系统整体设计
1. 系统架构
如上图所示:在系统存在一个认证中心以及多个站点。用户信息统一由认证中心管理,在其它子站的登录均会跳转到认证中心来登录。
2. 工作流程
单点登录系统的关键在于,当用户从一个子站登录后,它会在认证中心生成ticket标识,只要该标识存在就代表用户已经成功登陆了。每个子站在进入之前,无论本地ticket标识是否存在,均会去请求一次认证中心,要做的事情如下:如果子站ticket不存在,并不一定代表用户没有从别的子站登录,但是如果用户在别的子站登录过,则在认证中心一定会有ticket存在,则该次请求的目的就是去判断认证中心ticket是否存在,如果存在,则说明用户已经在别的子站登录了,要做的只是请求回来后在自己站点的cookie中种上ticket,如果不存在则说明用户根本没有登录,则直接跳转至登录页面即可;如果子站ticket存在,则它去认证中心请求的目的在于,如果认证中心ticket已经不存在了则说明用户已经退出了,则请求返回后需要将本地