Несоответствия сеансов Symfony sfGuardPlugin - PullRequest
1 голос
/ 24 июня 2009

Хорошо, у меня есть несколько модулей в моем приложении в Symfony. У меня есть только один безопасный модуль: включен. У меня также есть layout.php, который сверху включает меню с вкладками для отображения ссылок для каждого модуля в моем приложении. В этом меню также есть часть, где пользователю отображается ссылка «войти», если пользователь не вошел в систему, и «выйти», если пользователь вошел в систему.

Когда я пытаюсь посетить защищенный модуль: я перенаправлен на страницу входа. Я могу войти в систему в порядке, и печенье создано. Если я перейду к любому другому модулю, в меню отобразится ссылка «Выйти».

Допустим, я закрываю браузер (срок действия cookie истекает через 15 дней) и снова открываю браузер, и я захожу в модуль домашней страницы. Я должен войти в систему, но вместо этого в меню отображается «войти» (думая, что ни один пользователь не вошел в систему). Я пытаюсь посетить модуль secure: on, а затем, когда страница перезагружается, в меню отображается ссылка «Выйти из системы», поскольку теперь она читает файл cookie.

Что я обнаружил, так это то, что если файл cookie установлен, и я закрываю браузер и снова открываю его на домашней странице, есть два файла cookie: один «sfRemember» и второй «symfony». После того, как я зашел в безопасный модуль и прочитал cookie, cookie для «symony» полностью отличается от того, что отображается на домашней странице - это означает, что он не читает тот же cookie, и поэтому ссылка «log out» не появляется, пока я не посетите безопасный модуль. Если после того, как я открою этот защищенный модуль, я вернусь на домашнюю страницу, приложение отлично читает файл cookie и выводит сообщение «Выйти».

Я действительно понятия не имею, как подойти к этому. Любая помощь с благодарностью!

Ответы [ 3 ]

0 голосов
/ 17 июля 2009

Я попробовал решение на этом билете, но я получаю это:

Неустранимая ошибка: класс 'sfGuardRememberMeFilter' не найден

Я использую Symfony 1.2 и последнюю версию sfGuardPlugin. Что этот класс удален? Также в моем приложении settings.yml я включаю следующие модули на случай, если это окажется полезным для решения этой проблемы

Активированные модули из плагинов или из ядра Symfony

enabled_modules: [по умолчанию, sfGuardAuth]

Спасибо за вашу помощь!

0 голосов
/ 06 августа 2009

При желании включите фильтр «Запомнить меня» в filters.yml

безопасность: класс: sfGuardBasicSecurityFilter

0 голосов
/ 30 июня 2009

Я сталкивался с этим раньше.

Мой код работает, но объяснение, данное в этом билете, кажется знакомым.

http://trac.symfony -project.org / билет / 6607

...