子域和服务器之间的Cookie - PHP和Apache2

时间:2013-04-03 22:31:40

标签: php cookies apache2 subdomain

我运营的网站有很多不同的子域名。我们正在推出一个新的下载服务器,它使用主域的子域。我们通常检查用户信息的方式是跨子域cookie等,但我知道这不会工作,因为他们是不同的服务器,我想知道检查用户是否在主服务器上登录等的最佳方式是什么。

我想要做的是以下

Sub1.domain.tld =主服务器

如果要下载文件,它会指向存储文件的相应服务器

Sub2.domain.tld =下载服务器

有没有办法保留或检查用户是否已登录。

我们通常在子域名中使用Cookie的方式是

setcookie('LoginVariable1', $LoginVariable1, $expiretime, '/', '.domain.tld');
setcookie('LoginVariable2', $LoginVariable2, $expiretime, '/', '.domain.tld');

2 个答案:

答案 0 :(得分:0)

跨域Cookie将完全适用于您的情况。如果您有“www.somedomain.example”和“download.someotherdomain.example”,那么他们唯一不会工作的情况是,因为您无法将cookie定义为顶级域“示例”的跨域。 / p>

所以这归结为有一个cookie告诉所有服务器类似于用户的会话ID,或者他在登录期间获得的身份验证令牌,然后所有服务器必须询问某个中央身份验证服务此会话或令牌当前是否登录。

答案 1 :(得分:0)

如果子域映射到不同的服务器,您可以通过两种方式查看它。

1)您可以共享php将会话写入服务器A并在那里指向服务器B的目录。

2)您可以使用数据库会话并让两台服务器连接到单个数据库以验证/检索会话。

在这两种情况下,您最终都会有一个存储会话的中心位置。