0

我有一个 symfony 2 应用程序,它有 3 个不同的角色:管理员、供应商和用户。所有这三个用户都应该有不同的登录页面。我正在努力解决的问题是弄清楚要在某个 url 路径上security.yml获得未经身份验证的 ( ) 用户,例如重定向到类似的东西而不是. 我现在正在使用,看起来所有内容都重定向到.IS_AUTHENTICATED_ANONYMOUSLY/vendor/adminlogin/loginFOSUserBundle/login

谢谢!

4

1 回答 1

0

您可以将安全配置拆分为三种不同的防火墙:一种用于管理员用户,一种用于供应商用户,另一种用于其他用户。并且,根据用户点击的 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

于 2017-04-22T18:55:00.817 回答