Совместное использование сеанса между Ruby и PHP - PullRequest
6 голосов
/ 23 июня 2010

Возможно ли разделить сеанс между моим приложением PHP на поддомене и приложениями Ruby на других поддоменах?

Я не знаю, где его взять.Я знаю, что могу вручную установить домен в качестве корневого, чтобы файл cookie действовал для всех поддоменов, но как мне получить / установить материал из / в сеанс, чтобы он был общим для поддоменов?

В основном я хочу использовать это для совместного использования логина для всех моих поддоменов.

Ради знаний, если это неправильный подход к проблеме, хотя и выполнимый, я бы хотел понять, каксделай это, и почему я не должен.

Спасибо всем!

Ответы [ 2 ]

6 голосов
/ 23 июня 2010

Если вы хотите обмениваться сессиями таким образом (через PHP / Java / Ruby / и т. Д.), Вам необходимо сохранить сеансы (и получить к ним доступ) из базы данных.*

И вам понадобится такой же подход в Ruby.

Чтобы обмениваться файлами cookie между доменами, вам также необходимо изменить параметр конфигурации сеанса PHP для session.cookie_domain по умолчанию "" (который вставляетимя вашего домена): ".yourhost.com" (обратите внимание на префиксный период).

2 голосов
/ 23 июня 2010

Эту проблему можно решить с помощью приложений, использующих ту же базу данных, и с помощью файлов cookie.

  • Сессия открыта в php
    • Создать cookie со случайной строкой
    • Сохранить строку в базе данных с учетными данными пользователя и отметкой времени
  • Сессия отправлена ​​на рельсы
    • Проверьте, существует ли cookie
    • Поиск строки в файле cookie в базе данных
    • Если совпадение найдено, сеанс принимается и могут использоваться те же учетные данные пользователя

Было бы разумно хранить какую-то уникальную информацию о рабочей станции или браузере, чтобы кража сеанса с копированием куки не работала.

...