Вопрос

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

Спасибо

Это было полезно?

Решение

В зависимости от того, как настроено ваше приложение, вы может легко обмениваться файлами cookie с сайтов в одном домене (foo.domain, bar.domain, domain), настроив свои приложения на использование одного и того же секрета:http://www.russellquinn.com/2008/01/30/multiple-rails-applications/

Теперь, если у вас есть разрозненные сайты, такие как sdfsf.com, dsfsadfsdafdsaf.com и т.д.вам придется проделать гораздо больше хитростей, потому что сама природа файлов cookie ограничивает их конкретным доменом.По сути, то, что вы пытаетесь сделать, это использовать межсайтовые скрипты, чтобы вместо того, чтобы перехватывать ваш сеанс, читать его из других.

В этом случае, используя комбинацию одного и того же секретного файла cookie и т.д., А затем несколько межсайтовых сценариев, вы можете вручную извлечь информацию о сеансе и заново создать ее на каждом сайте (или, если вы используете ActiveRecord session {или NFS session dir}, связать с существующим).Это нелегко, но это можно сделать.

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

Другие советы

Используйте Хранилище сеансов базы данных.Короче говоря, это так:

Чтобы сгенерировать таблицу, на консоли выполните

rake db:sessions:create

в вашем environment.rb включите эту строку

config.action_controller.session_store = :active_record_store

Попробуйте использовать сеансы, поддерживаемые базой данных.

В Rails 2.0 теперь есть CookieStore, который хранит все данные сеанса в зашифрованном файле cookie на компьютере клиента.

http://izumi.plan99.net/blog/index.php/2007/11/25/rails-20-cookie-session-store-and-security/

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top