我已经安装了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的views文件夹中创建一个layout.html.twig,使其看起来像设计的其余部分对于我将要使用的管理员..
有什么想法吗?感谢..
答案 0 :(得分:4)
您需要在登录表单中放置一个名为“_target_path”的隐藏输入,symfony使用它来检查用户在成功通过身份验证后应该重定向到哪里。你可以自定义它。请查看以下文档:http://symfony.com/doc/current/cookbook/security/form_login.html