如何使会话/ cookie在Yii中的所有子域中工作

dot*_*hlu 3 php yii

我有几个子域名,如'a.domain.com','b.domain.com',但我发现如果我在子域名a登录,会话/ cookie将无法在b中运行,我必须再次登录'b .domain.com"

如何在所有子域中使登录会话工作?

更新:

我发现每个子域都有不同的会话ID ...

更新:

我发现我只能登录几个像'bench'和'post'这样的domians,但无法登录'book'和其他域名.真奇怪.

bri*_*iiC 8

您可以在yii config/main.php文件中设置它,就像我一样.(我不确定你是否还需要更改php.ini文件,但我会说"不",因为下面的配置解决了我的问题).

保护/配置/ 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'),
    ),
    ...
)
...
Run Code Online (Sandbox Code Playgroud)