2010-06-02 2 views
0

У меня есть приложение Rails на подобласти - xyz.domain.com, и PHP-приложение на другой поддомен - abc.domain.comКак создать сеанс в PHP, когда в Rails есть сеанс в том же домене?

Когда пользователь вошел в приложение Rails, я хотел бы дать им сеанс, чтобы я мог регистрировать определенные события об этом пользователе в приложении PHP, но в той же базе данных приложения Rails. Я бы просто предоставил API, требующий аутентификации.

Каков наилучший способ для этого? Я не хранить сессии в базе данных

UPDATE Следует отметить, что цель состоит в том, чтобы разрешить доступ с проверкой подлинности с PHP сайта в базу данных, которая была только используется приложение Rails до сих пор. Если пользователь входит в приложение Rails, я хочу отслеживать любые события, которые происходят на сайте PHP, и связывать их с пользователем.

ответ

0

я думаю сессия невозможно. вы можете использовать базу данных для хранения аутентификации, если они могут совместно использовать одну и ту же базу данных между субдоменом.

2

Я отвечу, не зная много о рельсах.

Вы можете customize the cookie name в php.ini. Между именем сеанса и правильным доменом cookie вы можете создать файл cookie, который будет использоваться обоими приложениями.

«Сессия» в терминах PHP подразумевает только файл cookie, значение которого указывает на некоторый набор сохраненных данных в хранилище сеансов. Например, если PHP (с использованием конфигурации по умолчанию) видит файл cookie PHPSESSID=2b00042f7481c7b056c4b410d28f33cf, он будет искать файл сеанса, такой как /tmp/sess_2b00042f7481c7b056c4b410d28f33cf. Файл просто содержит вывод serialize($_SESSION).

Таким образом, совместное использование сеанса будет передавать это значение cookie, но ничего другого по существу. Вам нужно будет решить, как делиться другими значениями, если PHP должен вставлять записи журнала. Некоторые опционы:

  1. Если сеанс PHP пуст, запросите URL-адрес в приложении Rails, который содержит имя пользователя и другие данные сеанса. Убедитесь, что URL-адрес доступен только с localhost.
  2. Выравнивать идентификаторы сеансов для имен пользователей/идентификаторов в базе данных, чтобы PHP мог выполнять поиск.
+0

ok. Я просто добавил информацию о своей конечной цели. Я думаю, что общий cookie будет работать, но я не уверен, как будет выглядеть поток этой транзакции. – Tony

+0

Спасибо, я немного обновил свой ответ. Надеюсь это поможет. –

Смежные вопросы