Перенаправление на основе текущего URL-адреса в symfony

У меня есть приложение Symfony 2 с 3 разными ролями: администратор, поставщик и пользователь. Все три из этих пользователей должны иметь разные страницы входа. То, с чем я борюсь, - это выяснить, что добавить в security.yml, чтобы получить неаутентифицированных (IS_AUTHENTICATED_ANONYMOUSLY) пользователей по определенному пути URL-адреса /vendor, например, чтобы перенаправить на что-то вроде /adminlogin, а не только /login. Сейчас я использую FOSUserBundle, и похоже, что все перенаправляется на /login.

Спасибо!


person Jake Sylvestre    schedule 22.04.2017    source источник


Ответы (1)


Вы можете разделить конфигурацию безопасности на три разных брандмауэра: один для пользователей-администраторов, один для пользователей-поставщиков и один для других пользователей. И, основываясь на 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

person Matko Đipalo    schedule 22.04.2017