【发布时间】:2016-03-07 10:19:31
【问题描述】:
我有几个子域,例如 'a.domain.com'、'b.domain.com' 但我发现如果我在子域 a 登录,会话/cookies 将无法在 b 中工作,我必须再次登录在“b.domain.com”中
如何使登录会话在所有子域中工作?
更新:
我发现每个子域都有不同的会话 id...
更新:
我发现我只能登录“bench”和“post”等几个域,但无法登录“book”和其他域。真奇怪。
【问题讨论】:
我有几个子域,例如 'a.domain.com'、'b.domain.com' 但我发现如果我在子域 a 登录,会话/cookies 将无法在 b 中工作,我必须再次登录在“b.domain.com”中
如何使登录会话在所有子域中工作?
更新:
我发现每个子域都有不同的会话 id...
更新:
我发现我只能登录“bench”和“post”等几个域,但无法登录“book”和其他域。真奇怪。
【问题讨论】:
你可以像我一样在 yii config/main.php 文件中设置它。 (我不确定你是否仍然需要更改 php.ini 文件,但我会说“不”,因为下面的这个配置解决了我的问题)。
protected/config/main.php
...
'components' => array(
...
'user'=>array(
...
'identityCookie' => array('domain' => '.mydomain.com', //note dot before domain name
// identityCookie same as "session->cookieParams->domain"
),
'session' => array(
'autoStart'=>true,
'cookieParams' => array('domain' => '.mydomain.com'),
),
...
)
...
【讨论】:
您可以使用 PHP 的 session.cookie_domain 值并将其设置为您的顶级域 (.domain.com)。通过编辑 php.ini 或使用 ini_set('session.cookie_domain', '.domain.com'); 进行设置;
祝你好运:)
谢。
【讨论】: