如何在Symfony2中使用FOSUserBundle正确注销

如何在Symfony2中使用FOSUserBundle正确注销,symfony,fosuserbundle,logout,Symfony,Fosuserbundle,Logout,有人能告诉我,为了从后台注销,我必须采取哪些步骤 我用的是symfony2和fosuser包 这是我的保安 security: encoders: FOS\UserBundle\Model\UserInterface: bcrypt role_hierarchy: ROLE_ADMIN: ROLE_USER ROLE_SUPER_ADMIN: ROLE_ADMIN providers: fos_userbundle: id: fos

有人能告诉我,为了从后台注销,我必须采取哪些步骤 我用的是symfony2和fosuser包 这是我的保安

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: ^/
        form_login:
            provider: fos_userbundle
            csrf_token_generator: security.csrf.token_manager
            default_target_path: /admin
            # if you are using Symfony < 2.8, use the following config instead:
            # csrf_provider: form.csrf_provider

        logout:       true
        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 }

但不起作用
怎么办

您忘记添加路线定义

在routing.yml中:

logout:
    path: /logout

注销功能内置于FOSUserBundle中

你可以检查一下这个

php app/console route:debug | grep logout
它应该显示

Name                              Method   Scheme Host Path 
fos_user_security_logout          GET      ANY    ANY  /logout 
如果您希望覆盖FOSUserBundle的路由,此答案非常有用:


或者文档:

“不工作”-你是什么意思?@ArturVesker我有一个-找不到“Get/”的路径-错误
php app/console route:debug | grep logout
Name                              Method   Scheme Host Path 
fos_user_security_logout          GET      ANY    ANY  /logout