联系
Knight's Tale » 技术

跨域登录技术讨论

2015-07-07 10:46

CAS

原理就是通过一个统一的登录中心UC来控制 每个产品线的登录。一般来说,对于大型企业来说,这是必要的,对于小企业来说,没必要这么做。

CAS解决单点登录SSO

http://techv5.com/topic/1528/

淘宝、天猫登录与 cas/sso

http://techv5.com/topic/1529/

跨域实现

这是本文想要讨论的重点

假设存在两个域名:A.com B.com

想实现的效果:用户只要登录任何一个系统,就可以在两个系统均登录

方案一:tmall tabobao 方案

http://www.taobao.com/go/app/tmall/login-api.php?0.5849199007064568

所有天猫的页面均要访问此url来然后cookie, tmall 放弃了自己的cookie,而使用taobao的cookie

统一以taobao的cookie作为中心cookie.

参见: http://blog.csdn.net/pangudashu/article/details/19078535

http://www.iteye.com/topic/1000776

http://stackoverflow.com/questions/3342140/cross-domain-cookies#

优点:方便简单、访问任何页面均不会出现问题

缺点:降低非主站的请求速度,每次请求都需要请求主站一次。

方案二:登录 登出 时行控制

当A系统登录登出时,发送http请求他们页面,进行域控制。对于B系统来说,反之亦然。

优点:不需要每次请求都请求主站

缺点:只能是在登录登出时进行控制,如果用户已经登录A,但是由于cookie在B过期,这时就会出现B没有登录,但是A已经登录的情况。因此,必须将cookie存活时间设置为近似相等来解决此问题。(但如果用户主动将B的cookie删除掉,也是会出现无法登录的问题的。这种方法比较容易出现诧异问题)。

本文链接地址:跨域登录技术讨论