Zend Framework Сеансы Zend_auth перепутаны - PullRequest
1 голос
/ 23 декабря 2009

У меня есть два поддоменов. Каждый поддомен имеет свою собственную базу данных аутентифицированных пользователей. Я использую

$auth = Zend_Auth::getInstance();
if($auth->hasIdentity()){ }

для проверки учетных данных пользователя. Он работает идеально для каждого отдельного субдомена. Но когда я захожу в один поддомен и пытаюсь получить доступ к «ограниченной» странице в другом поддомене, не выходя из первого поддомена, мне это удается. По сути, сеанс 'auth' первого субдомена возвращает значение true в '$ auth-> hasIdentity ()' для второго субдомена. Как я могу решить это?

РЕДАКТИРОВАТЬ: Возможно, использование разных имен сеансов аутентификации может решить эту проблему, но, поскольку я делю код между этими двумя поддоменами, этот вариант невозможен.

Ответы [ 2 ]

1 голос
/ 23 декабря 2009

сделать где-нибудь на вершине своей начальной загрузки

protected function _initModifiedSession()
{
    if ($this->hasPluginResource('session'))
    {
        $resourcesOptions = $this->getOption('resources');
        $resourcesOptions['resources']['session']['cookie_domain'] = $_SERVER['HTTP_HOST'];
        $this->setOptions($resourcesOptions);
        $this->bootstrap('session');
    }
}

Update1
без Zend_Application

    $sessionOptions = array(
        'cookie_domain' => $_SERVER['HTTP_HOST']
    );
    Zend_Session::setOptions($sessionOptions);
1 голос
/ 23 декабря 2009

Вы должны ограничить аутентификационные куки для текущего субдомена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...