Это мой файл security.yml
firewalls:
main:
pattern: ^/
form_login:
provider: fos_userbundle
csrf_provider: form.csrf_provider
login_path: project_frontend_main_index
logout:
path: project_frontend_main_logout
anonymous: true
access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin/, role: ROLE_ADMIN }
- { path: ^/alerts*, role: ROLE_USER }
Мой вопрос: проблема с выходом из системы, я не могу получить доступ к функции выхода из системы в главном контроллере. Я получаю эту ошибку, когда нажимаю «Выйти». Вы должны активировать выход из системы в конфигурации брандмауэра безопасности.
Попробуйте добавить это в верхней части вашего access_control
:
- { path: ^/logout$, role: IS_AUTHENTICATED_ANONYMOUSLY }
Кроме того, вы должны добавить target
для logout
(куда пользователь будет перенаправлен:
logout:
path: project_frontend_main_logout
target: / #or a specific public route
Если ничего из этого не работает, используйте конфигурацию по умолчанию для проекта сонаты, который можно найти Вот :
security:
providers:
fos_userbundle:
id: fos_user.user_manager
firewalls:
main:
pattern: .*
form-login:
provider: fos_userbundle
login_path: /login
use_forward: false
check_path: /login_check
failure_path: null
logout: true
anonymous: true
Удалить анонимный: правда, или, по крайней мере, сделать его ложным. Это решит вашу проблему.