我有一个 symfony 2 应用程序,它有 3 个不同的角色:管理员、供应商和用户。所有这三个用户都应该有不同的登录页面。我正在努力解决的问题是弄清楚要在某个 url 路径上security.yml
获得未经身份验证的 ( ) 用户,例如重定向到类似的东西而不是. 我现在正在使用,看起来所有内容都重定向到.IS_AUTHENTICATED_ANONYMOUSLY
/vendor
/adminlogin
/login
FOSUserBundle
/login
谢谢!
我有一个 symfony 2 应用程序,它有 3 个不同的角色:管理员、供应商和用户。所有这三个用户都应该有不同的登录页面。我正在努力解决的问题是弄清楚要在某个 url 路径上security.yml
获得未经身份验证的 ( ) 用户,例如重定向到类似的东西而不是. 我现在正在使用,看起来所有内容都重定向到.IS_AUTHENTICATED_ANONYMOUSLY
/vendor
/adminlogin
/login
FOSUserBundle
/login
谢谢!
您可以将安全配置拆分为三种不同的防火墙:一种用于管理员用户,一种用于供应商用户,另一种用于其他用户。并且,根据用户点击的 URL,您应该将他重定向到适当的登录表单(如果他没有登录)。
例如,如果用户访问example.com/admin/inventory
,并且他没有经过身份验证,您应该将他重定向到example.com/adminlogin
firewalls:
admin_secured_area:
pattern: ^/admin
...
form_login:
login_path: /admin/login
check_path: /admin/login_check
default_target_path: /admin
vendor_secured_area:
pattern: ^/vendor
...
form_login:
login_path: /vendor/login
check_path: /vendor/login_check
default_target_path: /vendor
default:
...
请查看此答案以获取更多信息:https ://stackoverflow.com/a/24546275/5431686