这是我的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 }
我的问题是注销问题,我无法访问主控制器中的注销功能。点击" logout"我收到此错误您必须在安全防火墙配置中激活注销。
答案 0 :(得分:0)
删除匿名:true,或至少将其设为false。这将解决您的问题。
答案 1 :(得分:0)
尝试将其添加到access_control
:
- { path: ^/logout$, role: IS_AUTHENTICATED_ANONYMOUSLY }
此外,您必须为target
添加logout
(用户将被重定向到的位置:
logout:
path: project_frontend_main_logout
target: / #or a specific public route
如果这些都不起作用,请使用可以找到的{$ 3}}的奏鸣曲项目的默认配置:
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