【问题标题】:symfony2 FOSUserBundle redirecting wrongsymfony2 FOSUserBundle 重定向错误
【发布时间】:2012-04-29 20:44:05
【问题描述】:

我已经安装了 FOSUserBundle 并且在一定程度上可以正常工作。它让我登录,它完成了它应该做的一切——除了将我重定向到正确的地方。

我在我的 AdminBundle routes.yml 文件中设置了我的路由(来自 github 上的 FOSUserBundle 安装文档的路由)

我已经为它创建了防火墙:

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

role_hierarchy:
    ROLE_ADMIN:       ROLE_USER
    ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]

providers:
    fos_userbundle:
        id: fos_user.user_manager

firewalls:
    admin_area:
        pattern:    ^/admin/
        form_login:
            check_path: /admin/login_check
            login_path: /admin/login
            provider: fos_userbundle
        anonymous: true
        logout:
            path:   /admin/logout
            target: /admin/

access_control:
     - { path: ^/admin/login$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
     - { path: ^/admin/, roles: ROLE_ADMIN }

唯一的问题是,当我转到 http://mysite.dev/admin 时,它会将我重定向到 http://mysite.dev/admin/login,这是正确的...所以我然后登录并将我重定向到 http://mysite.dev/ 而不是 /admin

重要的是要注意,我已经扩展了登录表单,使它看起来像我自己的......通过在我的 AdminBundle 的视图文件夹中创建一个 layout.html.twig 让它看起来像设计的其余部分对于我将使用的管理员..

有什么想法吗?谢谢..

【问题讨论】:

  • 我最终解决了这个问题,但我不知道为什么会这样。如果我转到 mysite.dev/admin 并让它将我重定向到 /login 它工作正常...但是如果我直接去mysite.dev/admin/login 它做了不正确的重定向..

标签: symfony fosuserbundle


【解决方案1】:

您需要在您的登录表单上放置一个名为“_target_path”的隐藏输入,symfony 使用它来检查用户在成功验证后应该重定向到哪里。您可以自定义它。查看文档:http://symfony.com/doc/current/cookbook/security/form_login.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-23
    • 1970-01-01
    相关资源
    最近更新 更多