多个站点之间的HTTP会话

时间:2011-02-02 08:42:41

标签: http session cross-domain

有没有办法以某种方式修改HTTP请求(添加cookie,HTTP请求参数或其他任何内容),以便当用户移动到位于不同位置的完全不同的站点时,可以保留HTTP会话不同的域名?

2 个答案:

答案 0 :(得分:2)

如果您有不同的域名,则可以使用子域名,因为如果Cookie域名为.bar.com,foo.bar.com和toto.bar.com可以共享Cookie。

如果您无法使用子域,则可以尝试使用第一个域上的代理来获取域或子域工作配置。在toto.bar.com上代理toto.com代理可以帮助您共享.bar.com会话cookie。如果这样做,请注意不要构建开放代理。这意味着您的第一台服务器也将获得100%的流量。

然后,如果以前都不合适,您将需要一个SSO解决方案,第三方共享验证数据。但SSO仅用于共享识别部分,而不是会话数据。

在SSO解决方案之前,有一个简单的解决方案,即具有相同的身份识别/身份验证后端(比如openLDAP)。但这只会让您拥有一个统一的密码,而不是共享连接/断开状态(这是SSO工作)。

如果您可以在服务器端处理会话数据共享,则必须处理与同一人关联的2个站点上的2个不同会话的同步。这种与唯一标识符的关联是SSO为您提供的。这是一件复杂的事情。

现在真正重要的问题是您希望在两个网站之间分享的内容?如果它是用户首选项,如颜色主题等,您可以考虑在您的应用程序的js环境中为您提供一些用户设置的CROS或JSONP调用,您甚至可以进行一些ajax查询以在每个设置中保存这些设置应用程序,这是一种在两个应用程序之间共享公共数据的方法,但不要将它用于证券化数据。

答案 1 :(得分:-1)

你必须在两个不同的服务器之间传输会话数据,以便它做任何好事;除非您可以访问域/服务器并创建服务器端以实现此功能,否则这是不可能的。即使这样,它也只适用于您可以控制的特定服务器。

无法从无法控制的服务器获取会话数据。