Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在FOSUserBundle中用户注销时保留路径_Php_Symfony_Fosuserbundle_Symfony 2.5 - Fatal编程技术网

Php 在FOSUserBundle中用户注销时保留路径

Php 在FOSUserBundle中用户注销时保留路径,php,symfony,fosuserbundle,symfony-2.5,Php,Symfony,Fosuserbundle,Symfony 2.5,我在一个正在进行的项目中使用FOSUserBundle,一切正常,但当我关闭会话时,我遇到了一个小问题,因为我转到应用程序的索引,而不是停留在登录表单所在的安全区域(安全区域),即/admin/login。这是我的安全。yml: security: encoders: FOS\UserBundle\Model\UserInterface: sha512 role_hierarchy: ROLE_ADMIN: ROLE_USER

我在一个正在进行的项目中使用FOSUserBundle,一切正常,但当我关闭会话时,我遇到了一个小问题,因为我转到应用程序的索引,而不是停留在登录表单所在的安全区域(安全区域),即
/admin/login
。这是我的
安全。yml

security:
    encoders:
        FOS\UserBundle\Model\UserInterface: sha512

    role_hierarchy:
        ROLE_ADMIN:       ROLE_USER
        ROLE_SUPER_ADMIN: ROLE_ADMIN

    providers:
        fos_userbundle:
            id: fos_user.user_provider.username_email

    firewalls:
        dev:
            pattern: ^/(_(profiler|wdt)|css|images|js)/
            security: false
        main:
            pattern: ^/
            form_login:
                provider: fos_userbundle
                csrf_provider: form.csrf_provider
            logout:
                 path: /logout
                 target: /admin
                 invalidate_session: false
            anonymous: true

    access_control:
        - { path: ^/admin, role: ROLE_ADMIN }

有人能告诉我哪里出了错吗?

我想是
匿名:真的
。如果您基本上希望整个站点处于访问控制之下,除了登录页面之外,没有其他页面可供未登录的人访问,那么您希望这样:

security:
        encoders:
            FOS\UserBundle\Model\UserInterface: sha512

        role_hierarchy:
            ROLE_ADMIN:       ROLE_USER
            ROLE_SUPER_ADMIN: ROLE_ADMIN

        providers:
            fos_userbundle:
                id: fos_user.user_provider.username_email

        firewalls:
            dev:
                pattern: ^/(_(profiler|wdt)|css|images|js)/
                security: false
            main:
                pattern: ^/
                form_login:
                    provider: fos_userbundle
                    csrf_provider: form.csrf_provider
                logout:
                     path: /logout
                     target: /admin
                     invalidate_session: false
                anonymous: ~ # NO ANONYMOUS ACCESS

        access_control:
            - { path: ^/admin, role: ROLE_ADMIN }
            # anonymous visitors need to be able to get to the logon pages
            - { path: ^/login, role: IS_AUTHENTICATED_ANONYMOUSLY } 
            - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
            # Could also add "safe" routes like an "about" or "contact us" pages here if you like
            - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }

也许我没有正确理解,但是,您的登录表单是否“在”安全区域内?@DonCallisto是的,如果登录表单本身在安全区域内,您如何登录?@DonCallisto我想我一开始完全理解了您的意思,不,它不在安全区域,此后我无法随时登录,您看到的是我唯一的配置,因为在前端我不需要登录访问,所以我忽略了其他配置