登录后重定向时出现两个问题

时间:2014-06-05 10:11:35

标签: php symfony fosuserbundle

我在 symfony2 项目中使用FOSUserBundle。用户可以登录并注销,一切正常。

"后端路由"就像:

/backend

哪个重定向到:

/backend/login

第一个问题:

如果用户直接调用登录页面:

/backend/login

成功登录后,他被重定向到首页,而不是/backend

第二个问题:

将用户重定向到检查凭据的URL:

/backend/login_check

某些浏览器会保存此网址,因此会进入自动完成状态,并且用户在重定向到backend/login_check时不会重新调用login。但问题是,在成功登录后, symfony2 会尝试将用户重定向到失败的路由check_login,并且大部分时间会导致再次显示登录窗口。

security.yml

firewalls:
    login_firewall:
        pattern:    ^/backend/login$
        anonymous:  ~

    backend:
        pattern:    ^/backend
        form_login:
            provider: fos_userbundle
            login_path: /backend/login
            check_path: /backend/login_check
            #use_forward: true

的routing.yml

login:
    pattern:   /backend/login
    defaults:  { _controller: VendorNameBundle:User:login }
login_check:
    pattern:   /backend/login_check

如何解决这两个问题?

1 个答案:

答案 0 :(得分:0)

首先,删除您的login_firewall。你不需要它。相反,请按照here

所述使用access_control

然后,您可以使用default_target_path防火墙的backend选项:

backend:
    pattern:    ^/backend
    form_login:
        provider: fos_userbundle
        login_path: /backend/login
        check_path: /backend/login_check
        default_target_path: /backend

查看更多here