为啥
sso作为单点登陆设计到一些很巧妙的前后端交互功能,
基础前提
cookie传递
cookie 是不能够跨域,比如www.a.com 的cookie 如果请求访问了 vvv.a.com 就无法带着此cookie, 不过有些为了共享就把cookie 设计到 .a.com 这种顶域上来共享
cookie 能在www.a.com 的请求上一直带过去
CAS
如果在两个系统里面进行登陆,比如 www.jia.com 和 www.jun.com 里面的话,我们先看一下流程
- 客户端 访问 www.jia.com jia的服务端看到没有session就 重定向到 www.sso.cnn?service=www.jia.com 里面,然后让客户端登陆
- 登陆完成后,往 www.sso.cnn 里面写一个cookie,说这个客户端已经登陆了,然后www.sso.cnn 再重定向到刚才传入的service 地址,www.jia.com?token=XXXXX, 把登陆的token带上去
- token有了后,可以在后端与认证中心对比校验了,然后把cookie绑一个在www.jia.com 里面,
-
客户端在访问www.jun.com 的时候,检测没有登陆,会跳转到www.sso.cnn 但是刚才登陆的时候已经有cookie 表示登陆成功了,就重定向到 www.jun.com?token=XXXX2 就直接拿来了token 继续可以访问了。
-
这样就实现了多登陆。
发表回复