两年前,我不得不设计一个系统来跨多个域共享身份验证数据,所有这些域共享相同的服务器/数据库。我能够通过一个复杂的cookie共享系统来解决这个问题,到目前为止仍然有效。
我现在正在重新设计系统,我想知道是否有更好的方法来实现这一点,而无需编写跨域cookie。
基本上系统必须这样做。
登录一个站点后,用户必须无缝登录所有其他站点,不仅要跟踪链接,还要直接在地址栏上写下域名。
据我所知,实现这一目标的唯一方法是跨域cookie,如果有其他选择请告诉我。
非常感谢
答案 0 :(得分:1)
我的想法是包含来自第三个域的登录-Javascript,该域在所有站点中都包含includet。这个javascript设置并读取session-cookie并通过ajax调用当前域服务器的结果。 (不应该在JS中进行验证 - 这只是设置和读取cookie)
如果跨域AJAX不起作用,您仍然可以调用充当代理的第三个域服务器并调用当前域服务器。
答案 1 :(得分:1)
StackOverflow网站实现了类似的功能。请查看以下链接中的详细信息。
答案 2 :(得分:0)
为此,您必须使用cookie,但您可以改变您在cookie中存储的内容。 Cookie不必包含用户凭据,而是可以包含更多用于“集中”会话的令牌。
简单方法是让所有主机共享一个memcached服务器,并使用用户cookie的内容作为密钥。