2010-01-13 78 views
0

如何通过多个第二域服务器同步sessionID?例如,我有服务器(您可以在任何这些服务器上登录服务器群),www.service1.com,www.service2.com,www.service3.com,如果您登录其中的一个服务器,登录信息(+其他任何内容)应该沿着它们持续存在。我如何向其他域提供SessionID? (会话本身存储在跨服务共享的sql服务器上)。通过域同步会话

回答

1

跨域登录是可能的,但非常棘手,并且容易出现问题。

通常,执行此操作的方案将涉及第三台服务器,该服务器充当集中式auth服务器。单个站点上的登录请求将通过auth服务器进行路由,auth服务器将传回安全令牌以用作会话ID。

我见过这个会话ID通过url重定向传递回服务器,并通过后端服务器通信。

我的个人建议是使用auth服务器作为某种web服务,并单独维护各个站点的登录。工作流程是大致为:

  1. 登录某个网站上
  2. 该网站将发出一个幕后要求Auth服务器要求身份验证和信息
  3. 中的验证服务器将做出相应的反应
  4. 该网站将成功登录,并在失败时显示错误消息。

有可能使用一些奇特的重定向和一些形式的信任来实现自动登录系统,但老实说,这样的事情很少,如果永远值得的。上述建议最终会导致他们不得不在每个单独的网站上登录,但他们会在每个网站上共享相同的凭据和个人资料。

1

你是不是指跨领域?

由于浏览器中的安全功能,这是不可能的。浏览器不允许跨域访问Cookie。

+0

我愿意。对不起,我可怜的英语,更正:) 我知道cookies不能共享,但我已经在某处看到过这种行为,所以应该有任何破解来实现这一点[编辑:用'这'我的意思是我的问题] – nothrow