我是Symfony2的新手。我正在尝试使用FOSUserBundle进行用户身份验证。
是否可以将单个FOSUserBundle用于管理员和前端部分?如果是,那么我需要在脚本级别进行哪些更改?
我想要的是:
1. if i access url http://localhost/symfony/admin/ then i should be redirected to http://localhost/symfony/admin/login if admin is not logged in and after successful login, i should be redirected to http://localhost/symfony/admin/
2. if i access url http://localhost/symfony/profile/ then i should be redirected to http://localhost/symfony/login if user is not logged in and after successful login, i should be redirected to http://localhost/symfony/profile/.
默认情况下,FOSUserBundle以管理员身份创建用户。因此,需要进行哪些更改才能让bundle自动为前端创建用户角色,为admin部分创建admin角色。
答案 0 :(得分:2)
您需要覆盖安全配置中的身份验证成功侦听器,以便在登录后将用户重定向到不同的页面,具体取决于他们的角色。
看看this answer并查看symfony的DefaultAuthenticationSuccessHandler可能会找到一些灵感。
此外,您需要覆盖访问被拒绝的处理程序(请参阅this answer),以便将用户重定向到不同的登录页面,具体取决于他们尝试访问的URL而不进行身份验证。