2014-06-05 30 views
0

我在symfony2項目上使用FOSUserBundle。用戶可以登錄和註銷,一切正常。登錄後重定向時出現兩個問題

「後端路線」 是這樣的:

/backend 

會被重定向到:

/backend/login 

第一個問題:

如果用戶調用登錄頁面直接:

/backend/login 

在成功登錄後,他被重定向到首頁,而不是/backend

問題二:

用戶被重定向到的憑證進行檢查的URL:

/backend/login_check 

一些瀏覽器保存此URL,所以它進入自動完成,並且用戶不記錄他正在呼叫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 

我該如何解決這兩個問題?

回答

0

首先,刪除您的login_firewall。你不需要它。相反,使用access_control描述here

然後,您可以使用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