TYPO3: Как разделить сеанс / файлы cookie между доменами (по одному для каждого языка)?

Интересно, есть ли способ сообщить TYPO3 о совместном использовании сеансов / файлов cookie между разными доменами?

Мы написали расширение Extbase для многоязычного / многодоменного сайта. Мы сохраняем поисковые слова из формы поиска в пользовательской сессии. Если пользователь переключает язык страницы, он должен получить те же результаты, что и раньше - без необходимости повторно заполнять форму поиска.

Один из способов - указать браузеру хранить несколько файлов cookie одновременно - по одному для каждого домена / языка. Как этого добиться с помощью TYPO3 / Extbase?


person rantanplan    schedule 02.05.2013    source источник


Ответы (1)


По умолчанию невозможно установить файлы cookie для другого домена - ни с TYPO3, ни без него. Это мера безопасности, реализованная в каждом браузере (или вы хотите, чтобы я устанавливал / считывал ваши файлы cookie с yourbank.com, когда вы посещаете мой веб-сайт? ;-))

Вы должны создать вспомогательный скрипт, который сделает это за вас. Один из способов:

  • example.com загружен
  • эта страница включает iframe для сценария PHP (или сайта TYPO3, например, с eID) на example.org с параметром GET, в котором хранится идентификатор сеанса
  • сценарий, загруженный с example.org, считывает параметр GET и устанавливает cookie с этим идентификатором сеанса (или любым другим параметром, который вы хотите передать).
  • впоследствии файл cookie также доступен при просмотре example.org

Я никогда не пробовал этого, но уверен, что он будет работать с PHP. Возможно, это даже возможно с чистым JavaScript, но я не уверен. В каждом случае подумайте, какие дыры в безопасности вы получите с помощью объясненного сценария. При сомнении подпишите параметры (или потребуйте токен)!

person StephenKing    schedule 03.05.2013
comment
Хороший момент: это проблема безопасности - невозможно добавить два файла cookie для разных доменов! - person rantanplan; 03.05.2013
comment
У меня проблема с felogins для многодоменного сайта (каждый домен - язык). @StephenKing, ваш ответ касается настройки файлов cookie. Это ясно. Но как насчет указания TYPO3 (или любого другого приложения) принимать файлы cookie из другого домена? Например, указание TYPO3 принимать файлы cookie от domain-a.com и domain-b.com для входа в систему. Я смотрел на [SYS][cookieDomain] - но там пока не повезло. - person Urs; 05.09.2014
comment
Это невозможно по замыслу. Вы не можете запросить cookie пользователя, например, для facebook.com. Это было дизайнерское решение тогда, когда были изобретены файлы cookie (и я думаю, что это хорошо ;-)) - person StephenKing; 05.09.2014
comment
Понятно. Таким образом, единственным обходным путем, по-видимому, является решение AJAX / iFrame для установки другого файла cookie. Спасибо! - person Urs; 08.09.2014