Как отучить Yii2 удалять cookie?

Рейтинг: 7Ответов: 1Опубликовано: 05.05.2015

Суть: Yii2 все куки и сессии удаляет через некоторое время, хотя время жизни 3600*24*30*12 - что подтверждается при просмотре кук в браузере. Удаляет и PHPSESSID и любые другие на домене

Мой конфиг:

'session' => [
            'class' => 'yii\web\Session',
            'cookieParams' => ['httponly' => true, 'lifetime' => 3600*24*30*12],
            'timeout' => 3600*24*30*12,
            'useCookies' => true,
        ],
'request' => [
            'enableCookieValidation' => false,
            'enableCsrfValidation' => true,
            'cookieValidationKey' => 'секретка',
        ],

Валидацию отключил т.к. пробовал задавать через setcookie напрямую. Момент удаления отследить не смог, но он наступает через какое-то время после неактивности клиента, примерно 20 минут.

Так же выяснил что удаляются все куки, если удалить вручную PHPSESSID.

Ответы

▲ 4Принят

Возможно дело не в yii.
Такое поведение встречается из-за неверного или отсутствующего значения параметра session.cookie_domain php.ini, который можно установить:

session.cookie_domain = ".site.com"

Или:

ini_set('session.cookie_domain', '.site.com' );