Rails Sessions через серверы - PullRequest
       20

Rails Sessions через серверы

5 голосов
/ 19 сентября 2008

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

Спасибо

Ответы [ 4 ]

6 голосов
/ 19 сентября 2008

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

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

rake db:sessions:create

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

config.action_controller.session_store = :active_record_store
3 голосов
/ 19 сентября 2008

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

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

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

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

0 голосов
/ 19 сентября 2008

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

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

0 голосов
/ 19 сентября 2008

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

...