Dar*_*ari 5 symfony fosuserbundle
我已安装FOSUserBundle
,我在我的项目中使用它.其登录页面重定向到未知路径/_wdt/50366043f414d
.我改了default_target_path
下,form_login
在security.yml
文件中,但它并没有生效.
如何在FOSUserBundle中更改登录页面的目标路径?
Dar*_*ari 14
我必须设置always_use_default_target_path
为true
,如symfony文档中所示
#app/config/security.yml
firewalls:
main:
pattern: ^/
form_login:
login_path: /login
default_target_path: /my/desired/path
always_use_default_target_path: true
Run Code Online (Sandbox Code Playgroud)
我有同样的问题,我遇到这个问题的原因是因为Symfony试图加载Web调试工具栏(因此错误中的"_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 }
Run Code Online (Sandbox Code Playgroud)
这意味着如果用户尝试打开根"/"后面的任何内容的页面,则需要登录.
我解决问题的方法是添加"_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 }
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6949 次 |
最近记录: |