Выход успешно выполнен, и пользователь отключен. Проблема в том, что он не перенаправляет на страницу, заданную в конфигурации. Вместо этого выдается 500 Internal Error со следующим сообщением об ошибке:
ContextErrorException: Предупреждение: SessionHandler :: write (): Parent
обработчик сеанса не открыт в
C: \ xampp \ htdocs \ community \ app \ cache \ dev \ classes.php строка 398
Я использую Symfony2.3.25 и PHP 5.4.7.
Моя конфигурация безопасности:
firewalls:
main:
pattern: ^/
form_login:
provider: fos_userbundle
csrf_provider: form.csrf_provider
login_path: /login
check_path: /login_check
default_target_path: /admin/
logout:
path: /logout
target: /
anonymous: ~
Когда я обновляю путь выхода из системы в браузере, он успешно перенаправляет на домашнюю страницу.
Любая подсказка высоко ценится.
Является ли проблема, связанная с PHP, упоминается в SymfonyRequirements для версии php до 5.4.11:
При использовании обработчика выхода из компонента Symfony Security вы
должен иметь по крайней мере PHP 5.4.11 из-за ошибки PHP # 63379 (как
Обходной путь, вы также можете установить invalidate_session в false в
настройка обработчика выхода из системы безопасности)
Есть обходной путь, который вы можете добавить invalidate_session: false
:
firewalls:
main:
pattern: ^/
form_login:
provider: fos_userbundle
csrf_provider: form.csrf_provider
login_path: /login
check_path: /login_check
default_target_path: /admin/
logout:
path: /logout
target: /
invalidate_session: false
anonymous: ~
Надеюсь, это поможет.
Других решений пока нет …