Symfony2 как лучше реализовать свой механизм сессий?
Как разработчик приложений для социальных сетей, столкнулся с проблемой инициализации сессии в iframe в некоторых браузерах (к примеру Safari, где нет нормального решения проблемы, а игнорировать пользователей Safari нельзя).
Было принято решение отказаться от сессионных кук и сделать иначе.
Варианты решений
- передавать session ID в GET параметрах (придется подставлять в каждую форму и URL)
- передавать session ID в хедерах (также придется передавать при каждом запросе, но зато без доп параметров в URL)
- реализовать собственный механизм (но передача остается такой же GET или Headers, и затрагивает другие аспекты фреймворка Symfony2)
1) session ID в любом случае придется передавать в каждом запросе, в заголовках, URI или куках - не важно. Самый простой способ - в URI но он же и не секьюрный... наверное... если перегенеривать часто то может и норм.
2) Какие собственно другие аспекты затрагивает? Поставьте обработку этого дела в onRequest и onResponse (http middleware) и там делайте с запросами ответами что хотите. Ваше приложение ничего даже не узнает. А переопределить сервис по работе с сессиями вы уж как-нибудь сможете.
Затрагивает например мультиязычность приложения, но это скорее всего тоже решается передачей locale. Проблема достаточно известная, я предположил что есть практики красивого решения, но пока не нашел ничего кроме передачи параметров.