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

#cakephp #cakephp-1.3 #fancybox

#cakephp #cakephp-1.3 #fancybox

Вопрос:

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

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

Спасибо.

Ответ №1:

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

Комментарии:

1. Этого не должно быть, но я обязательно проверю. Я не думаю, что на самом деле происходит какой-либо ajax (поскольку наложение является iframe, я думаю, что это прямой запрос / ответ), но если это возможная причина, я проверю это. Спасибо.

Ответ №2:

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

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