我已經安裝了FOSUserBundle
,我在我的項目中使用它。其登錄頁面重定向到未知路徑/_wdt/50366043f414d
。我更改default_target_path
在form_login
security.yml
文件下,但它沒有生效。default_target_path不能與FOSUserBundle一起使用
如何更改FOSUserBundle中登錄頁面的目標路徑?
我已經安裝了FOSUserBundle
,我在我的項目中使用它。其登錄頁面重定向到未知路徑/_wdt/50366043f414d
。我更改default_target_path
在form_login
security.yml
文件下,但它沒有生效。default_target_path不能與FOSUserBundle一起使用
如何更改FOSUserBundle中登錄頁面的目標路徑?
我必須設置always_use_default_target_path
到true
,如圖 symfony documentation
#app/config/security.yml
firewalls:
main:
pattern: ^/
form_login:
login_path: /login
default_target_path: /my/desired/path
always_use_default_target_path: true
我有同樣的問題,我是有這個問題的原因是因爲Symfony的嘗試加載的網頁調試工具(因此錯誤中的「_wdt」位),它有自己的路徑,在頁面加載結束時被調用。就我而言,我已經配置了我的security.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
firewalls:
main:
pattern: ^/
form_login:
provider: fos_userbundle
csrf_provider: form.csrf_provider
logout: true
anonymous: true
access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/css, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/js, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/, role: ROLE_USER }
這意味着,如果用戶試圖打開一個頁面根後面什麼「 /」,他必須先登錄
我解決了這一問題的方法是通過添加‘_wdt’的一部分,並允許它爲匿名用戶:
access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/css, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/js, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/_wdt, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/, role: ROLE_USER }
這可能是一個老問題,但而不是o f改變access_control當前Symfony2配置爲調試工具欄提供了額外的防火牆:
# Disabling the security for the web debug toolbar, the profiler and Assetic.
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
謝謝!這是解決真正的問題。不幸的是,選擇的答案只是「覆蓋」了問題的出現。 –