Недавно меня попросили добавить XML API в один из модулей Symfony в моем проекте. Я сделал это, и это работает хорошо. Для аутентификации мы используем sfGuardPlugin
. Версия Symfony - 1.3.11. Использование Propel, а не Doctrine.
Последний запрос ко мне:
- Мы добавим Flash-игру на сайт.
- Flash выполнит запросы к API XML.
- Парень, который кодирует приложение Flash, говорит, что оно не делит куки с браузером.
- Мы хотим, чтобы Flash мог повторно использовать сеанс текущего пользователя, вошедшего в систему (мы не будем отображаться, даже если пользователь не вошел в систему).
Я попробовал это потенциальное решение: (взято из других статей SO и различных результатов поиска Google)
- Мне сказали, что сеанс Symfony находится в файле cookie
symfony
.
- Мне сказали, что если я скопирую это значение в другой клиент (в моем случае,
wget
) и выполню session_id("stolen_session_id")
, я смогу продублировать сеанс, войти в систему того же пользователя и т. Д.
- Это оказалось неправильно. Скажем, у моего cookie-файла symfony было значение "blabla". Я сделал это:
wget --post-data='session_id=blabla' X.X.X.X:NN/api/bla.xml -O-
. Мой серверный PHP-код анализирует этот параметр POST и передает его в функцию session_id
. Затем он сообщил в журналах, что session_id('blabla')
возвращал 1
. Однако при вызове $this->getUser()->getGuardUser()
возвращается null
.
Мне нужен способ сопоставить переданный session_id
с действительным sfGuardUser
. Или найти альтернативный способ повторного использования уже существующего сеанса.
Предположим, у меня есть полный доступ к файлам cookie. Я хочу знать, какой из них (или всех?) Дублировать, чтобы добиться этого.
Кстати, я вижу в своих инструментах Chrome dev, что файл cookie symfony
имеет тип сеанса. Поэтому неудивительно, почему мой метод не работает, но я немного растерялся, как мне это сделать в Symfony, при использовании sfGuardPlugin
.
Я понимаю, что это не один из наиболее информированных вопросов, но то же самое, мне просто нужна помощь.
Спасибо за ваше время.
(Димитар П.)
Упс, забыл упомянуть, какие куки я вижу на моем домене :
- Symfony
- sfRemember
- __ UTMA
- __ UTMB
- __ utmc
- __ utmz
Я предполагаю, что последние четыре для Google Analytics.