FOSUserBundle - 您必须在安全防火墙配置中激活注销
Posted
技术标签:
【中文标题】FOSUserBundle - 您必须在安全防火墙配置中激活注销【英文标题】:FOSUserBundle - You must activate the logout in your security firewall configuration 【发布时间】:2016-06-03 19:58:53 【问题描述】:我正在使用带有 FOSUserBundle 的 Symfony 2.8.2。当我尝试注销时,出现以下错误:
您必须在安全防火墙配置中激活注销
这是我的 security.yml
security:
encoders:
FOS\UserBundle\Model\UserInterface: bcrypt
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: ROLE_ADMIN
providers:
fos_userbundle:
id: fos_user.user_provider.username
firewalls:
main:
pattern: ^/login
form_login:
provider: fos_userbundle
csrf_token_generator: security.csrf.token_manager
anonymous: true
logout:
path: /logout
target: /login
access_control:
- path: ^/logout$, role: IS_AUTHENTICATED_ANONYMOUSLY
- path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY
- path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY
- path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY
- path: ^/admin/, role: ROLE_ADMIN
- path: ^/, role: ROLE_USER
我也尝试设置 logout: true 但没有任何改变。
附:我没有使用 Sonata,只是 FOSUserBundle。
我收到此错误的原因是什么?
【问题讨论】:
看起来像 ***.com/questions/14941989/… 的副本 不是真的,那个解决方案对我不起作用。 【参考方案1】:您必须添加您的 security.yml
firewalls:
secured_area:
logout:
path: /logout
target: /
在你的 routing.yml 中
logout:
path: /logout
【讨论】:
【参考方案2】:main
防火墙的模式似乎有误。
设置pattern: ^/login
使此防火墙仅对匹配的 URL 有效,即只有 /login
URL。
此外,注销 URL 必须在防火墙的安全区域内。
【讨论】:
以上是关于FOSUserBundle - 您必须在安全防火墙配置中激活注销的主要内容,如果未能解决你的问题,请参考以下文章
FOSUserBundle 使用电子邮件登录 (Symfony2)
FOSUserBundle 在 EasyAdminBundle 中管理((“用户”实体必须使用“类”选项定义其关联的 Doctrine 实体类))Symfony