无法获取注销操作 sonata-project

Can't get the logout action sonata-project

这是我的 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" 时出现此错误您必须在安全防火墙配置中激活注销。

删除匿名:正确,或至少将其设置为错误。这将解决您的问题。

尝试将此添加到 access_control 的顶部:

- { path: ^/logout$, role: IS_AUTHENTICATED_ANONYMOUSLY } 

此外,您必须为 logout 添加 target(用户将被重定向到的位置:

logout: 
    path: project_frontend_main_logout
    target: / #or a specific public route

如果 none 有效,请使用奏鸣曲项目的默认配置 here :

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