Как мне сохранить сеанс в iframe? - PullRequest
4 голосов
/ 27 мая 2009

Предположим, у меня есть веб-приложение, которое я хочу встроить в любой другой сайт с помощью iframe. Iframe ссылается на мой сайт и работает независимо от веб-страницы хостинга.

Итак, браузер считает iframe сторонним сайтом, поэтому его сеансовый cookie считается сторонним cookie. Существуют некоторые способы сделать браузеры счастливыми (например, заголовок P3P), но все же возможно, что у пользователя будут полностью отключены сторонние файлы cookie. Если это так, то файлы cookie сеанса не могут сохраняться в iframe.

Каковы хорошие методы для сохранения сеанса в iframe на стороннем сайте?

Ответы [ 2 ]

4 голосов
/ 04 июня 2009

Я столкнулся с подобной проблемой, с которой вы столкнулись здесь. Существует обходной путь (не будет работать, если вы собираетесь отслеживать поведение пользователей на разных сайтах).

я. Поместите постоянный cookie-файл первой стороны в домен, где будет размещен ваш iframe. (Это можно сделать с помощью JavaScript).

II. Динамически вставьте iframe и передайте значение cookie на ваш сайт.

III. Если вы намереваетесь отслеживать поведение пользователей на разных сайтах, измените приведенный выше код, чтобы использовать сторонние файлы cookie, когда это разрешает браузер, иначе переключитесь на вышеуказанный подход.

Я не нашел другого способа обойти это. Если вы найдете более приемлемое решение, дайте мне знать.

3 голосов
/ 04 июня 2009

Мое намерение состоит в том, чтобы отслеживать сеанс внутри iframe, чтобы щелчки и перезагрузки поддерживали состояние. Нет необходимости связывать сессии между iframe и сайтом хостинга.

Лучшее, что я могу придумать, это сеансы без файлов cookie. Это немного ручная работа, но на этом сайте, на котором работает PHP, мне просто нужно убедиться, что строка запроса всегда содержит «PHPSESSID=x» и она автоматически присоединится к этому идентификатору сеанса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...