Допустим, у меня есть приложение Symfony2, которое использует два основных пакета: OneBundle
а также TwoBundle
, OneBundle
выступает в качестве бэкэнда для административных целей и TwoBundle
RESTful API для внешних
Поток для OneBundle
это известно для всех: войти в систему администратора, делать вещи и выходить из системы или оставить приложение открытым или закрыть непосредственно браузер или любой другой способ закрыть приложение, в этом случае сеанс должен быть уничтожен или одет как определено в config.yml
(24 часа истекает срок для сессий).
Сейчас TwoBundle
имеет другой поток: пользователь входит в систему Salesforce и получает токен, этот токен передается обратно в конечную точку API, и я создаю новый сеанс для хранения токена и некоторой другой информации, выхода пользователя из системы или закрытия клиентского приложения или чего-то еще и этого сеанса должен быть жив в течение недели, а не в течение 24 часов, как первый.
Может ли одно и то же приложение Symfony2 совместно использовать два разных сеанса, что означает один сеанс для OneBundle
и второй для TwoBundle
? PHP позволяет это? Как вы справляетесь с этими бизнес-правилами? Могу ли я сохранить один сеанс в качестве обработчиков сохранения по умолчанию, а другой — как PdoSessionHandler
?
Это можно сделать, установив два файервола в файле security.yml. Один для «OneBundle», а другой для «TwoBundle», вы можете использовать другой обработчик безопасности (FOSUser для первого, Native для второго), чтобы безопасность Symfony была действительно гибкой.
[редактировать]Вы можете посмотреть эти страницы в конфигурации Symfony:
Других решений пока нет …