Совместное использование сессии между Ruby и PHP

Действительно ли возможно совместно использовать сессию между моим приложением PHP на субдомене и моими приложениями Ruby на моих других субдоменах?

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

Я главным образом хочу использовать это для совместного использования входа в систему для моих целых субдоменов.

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

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

6
задан Olivier Tremblay 22 June 2010 в 21:56
поделиться

2 ответа

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

См: http://php.net/manual/en/function.session-set-save-handler.php

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

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

6
ответ дан 16 December 2019 в 21:34
поделиться

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

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

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

2
ответ дан 16 December 2019 в 21:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: