无法获得注销动作sonata-project

时间:2015-05-18 11:55:07

标签: php symfony symfony-2.3 symfony-security

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

2 个答案:

答案 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