【问题标题】:How to make session/cookies work in all subdomains in Yii如何使会话/cookies 在 Yii 的所有子域中工作
【发布时间】:2016-03-07 10:19:31
【问题描述】:

我有几个子域,例如 'a.domain.com'、'b.domain.com' 但我发现如果我在子域 a 登录,会话/cookies 将无法在 b 中工作,我必须再次登录在“b.domain.com”中

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

更新:

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

更新:

我发现我只能登录“bench”和“post”等几个域,但无法登录“book”和其他域。真奇怪。

【问题讨论】:

标签: php yii


【解决方案1】:

你可以像我一样在 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'),
    ),
    ...
)
...

【讨论】:

    【解决方案2】:


    您可以使用 PHP 的 session.cookie_domain 值并将其设置为您的顶级域 (.domain.com)。通过编辑 php.ini 或使用 ini_set('session.cookie_domain', '.domain.com'); 进行设置;

    祝你好运:)
    谢。

    【讨论】:

    • 好吧,在我更改了该设置后,我什至无法登录...顺便说一句,我使用数据库来存储会话,如果可以的话。
    • 存储会话?你是什​​么意思?也许您更改不正确,它应该可以完成工作。您可以粘贴您添加的行以及确切的位置吗?夏。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-05
    • 2015-07-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-20
    • 1970-01-01
    相关资源
    最近更新 更多