CakePHP Session обновляется, но срок действия cookie не истекает
Short Question:
Почему в браузере не обновляется время истечения срока действия моих файлов cookie сеанса, когда на сервере обновляется время истечения моего сеанса?
Long Question:
Я отправиланалогичный вопрос об этом несколько недель назад, но у меня не было всех фактов в то время. Теперь у меня есть больше деталей, и характер вопроса изменился, поэтому я публикую его как новый вопрос.
Прежде всего, в CakePHP 2 я настроил APP / Config / core.php со следующим для сессии:
Configure::write('Session', array(
'defaults' => 'database',
'cookie' => 'mycookie',
'timeout' => 1 // 1 minute - just for testing
));
Итак, я загружаю страницу, которая в моем приложении создает сеанс в базе данных. Пока все хорошо.
Сессия имеет отметку истечения в1341288066
который равенTue, 03 Jul 2012 04:01:06 GMT
, Опять же, это здорово, потому что это через 1 минуту. Именно то, что я хотел.
Если я посмотрю на экране файлов cookie Firefox, я найду файл cookie точно так, как я и ожидал:
Name: mycookie
Content: aqm0gkmjfsuqje019at8cgsrv3
Host: localhost
Path: /
Send for: Any type of connection
Expires: Tue 03 Jul 2012 11:01:06 AM ICT // (04:01:06 GMT)
Теперь в этом 1-минутном окне я возвращаюсь к своему приложению и обновляю страницу. Затем я проверяю сеанс, чтобы убедиться, что он обновлен. Это показывает1341288122
против идентификатора сеансаaqm0gkmjfsuqje019at8cgsrv3
который равенTue, 03 Jul 2012 04:02:02 GMT
что, опять же, то, что я ожидал. Срок окончания сеанса был обновлен до 1 минуты с момента последней перезагрузки страницы.
К сожалению, cookie в браузере по-прежнему настроен наExpires: Tue 03 Jul 2012 11:01:06 AM ICT
(То есть:04:01:06 GMT
) и это именно то, что он делает, что означает, что в следующий раз, когда я нажимаю кнопку обновить, Cake генерирует новый идентификатор сеанса, даже если старый все еще технически действителен.
Мой вопрос в основном, что здесь происходит? Почему cookie не обновляется в браузере с новой датой истечения срока действия?