CakePHP преждевременно выводит меня из системы

У меня есть приложение CakePHP, которое, кажется, завершает мой сеанс одним конкретным действием. У меня есть страница, которая при нажатии на ссылку запускает оверлей Fancybox типа iframe. В этом оверлее пользователь заполняет и отправляет форму. Форма отправлена ​​правильно, выполняет свою работу (включая отправку электронного письма), загружает представление об успешном завершении и позволяет закрыть оверлей, но как только я пытаюсь перейти на любую другую страницу, меня отправляет на экран входа в систему для повторной аутентификации. .

Значение моего параметра конфигурации Security.level равно medium, а моего Session.timeout равно 120, так что это не должно быть проблемой. У кого-нибудь есть идеи, что могло создать это?

Спасибо.


person Rob Wilkerson    schedule 08.06.2011    source источник


Ответы (2)


Возможно ли, что ваши вызовы и перенаправления ajax не попадают в одно и то же место, например, www.site.com и site.com? У меня было это раньше, и я также продолжал выходить из системы.

person dogmatic69    schedule 09.06.2011
comment
Такого не должно быть, но я обязательно проверю. Я не думаю, что на самом деле происходит какой-либо ajax (поскольку оверлей представляет собой iframe, я думаю, что это прямой запрос/ответ), но если это возможная причина, я проверю ее. Спасибо. - person Rob Wilkerson; 09.06.2011

Так что это было не весело выслеживать, но это я был идиотом. В коде был спрятан код ранней стадии для обновления пользовательских данных в аутентифицированном сеансе, который не делал того, что должен был делать. Он пытался обновить весь объект Auth.User напрямую (например, $this->Session->write( 'Auth', $user )) вместо вызова метода login.

Как только я изменил код Session::write() на $this->Auth->login( $user ), все стало хорошо. Хороший справочный материал по этому вопросу на http://milesj.me/blog/read/31/Refreshing-The-Auths-Session.

person Rob Wilkerson    schedule 12.06.2011