У меня есть приложение Symfony с двумя областями: одна для доступа клиентов с веб-страницы, другая для вызовов API из AJAX и веб-сервисов.
Каждая из этих областей защищена собственным брандмауэром. Веб-интерфейс аутентифицируется с помощью формы входа и API с http_basic
.
Оба брандмауэра работают нормально, но когда WEB-интерфейс делает AJAX-вызов API-интерфейса, то браузер предлагает пользователю снова войти в систему, даже если он уже был авторизован (через форму входа ). Это то, чего я хочу избежать. Я хотел бы, чтобы оба брандмауэра были аутентифицированы одновременно, чтобы предотвратить это приглашение.
Я видел еще один вопрос с точно той же проблемой. Но они используют аутентификацию http_basic
на обоих брандмауэрах, так что,предложенное решение не сработало в моем случае:
Аутентифицируйте несколько брандмауэров symfony2 с помощью одной формы входа
Моя безопасность.yml
#....
firewalls:
api:
pattern: ^/API
context: primary_auth
stateless: true
http_basic:
realm: "API: Please log in"
web:
pattern: ^/
context: primary_auth
form_login:
check_path: /login_check
login_path: /login
provider: fos_userbundle
logout:
path: /logout
target: /
anonymous: ~