基于symfony当前网址的重定向

问题描述:

我有一个symfony 2应用程序与3个不同的角色:管理员,供应商和用户。所有这三个用户应该有不同的登录页面。我正在努力的是要弄清楚如何在security.yml中放入某个url路径/vendor未经身份验证(IS_AUTHENTICATED_ANONYMOUSLY)的用户,例如重定向到类似/adminlogin的对象,而不是/login。我现在正在使用FOSUserBundle,而且看起来好像所有内容都重定向到/login基于symfony当前网址的重定向

谢谢!

您可以将安全配置分成三个不同的防火墙:一个用于管理员用户,一个用于供应商用户,另一个用于其他用户。 而且,根据用户点击的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://*.com/a/24546275/5431686