Тайм-аут сессии слишком рано с CakePHP 2.0 - PullRequest
4 голосов
/ 14 февраля 2012

Я недавно переключился на Cake2.0, и у меня были некоторые проблемы с тайм-аутом сеансов гораздо раньше, чем следовало бы.

Копируя пример из документации , я установил сеансвведите php и установите время ожидания на 3 дня (4320 минут).Однако после прочтения различных статей кажется, что даже после установки времени ожидания в Cake на 3 дня PHP может уничтожить сеанс в GC, если для PHP.ini задано более короткое время ожидания для сеанса или GC.

Итак, я изменил значение по умолчанию для сеанса на торт с тем же временем ожидания.

Configure::write('Session', array(
   'defaults' => 'cake',
   'timeout' => 4320,
));

Configure::write('Security.level', 'medium');

Однако, хотя это должно оставить меня в системе на 3 дня, я обнаружил, что едва получаю 3 часа, прежде чем мне нужно войтиснова.

Есть ли проблема с тайм-аутами сеанса, о которой я должен знать, или это тайм-аут в секундах (не минутах?) или на него влияет уровень Security.level, как в 1.3?Я не смог найти никаких трудных документов о том, как это работает в 2.0, или что может быть причиной проблем.

Заранее спасибо.

Ответ: Для тех, кто придет позже и увидит это.В 2.0.5 есть ошибка, из-за которой время ожидания сеанса не сохраняло значение в Config.write ();

Чтобы решить проблему, обновитесь до 2.0.6 (или 2.1, когда он выйдет из бета-версии)

1 Ответ

1 голос
/ 15 февраля 2012

Если вы используете компонент безопасности, вы всегда можете попробовать изменить срок его действия на 3 часа:

$components = array(
    'Security' => array(
        'csrfExpires' => '+3 hour'
    )
);

Я не говорю, что это хорошая идея, но она можетпомочь вам сузить проблему.Если вы используете компонент Security, возможно, это проблема.

Кроме того, Session.timeout указывается в минутах (не секундах).

...