Frage

Ich möchte einige Schienen-Anwendungen über verschiedene Server haben die gleiche Sitzung zu teilen. Ich kann es innerhalb des gleichen Servers tun, aber nicht wissen, ob es möglich ist, über verschiedene Server zu teilen. Wer schon hat oder weiß, wie es zu tun?

Danke

War es hilfreich?

Lösung

Je nachdem, wie Ihre Anwendung eingerichtet ist, können Sie können leicht Cookies von Websites in derselben Domäne teilen (foo.domain, bar.domain, Domain), indem Sie Ihre Anwendungen auf die Einstellung der zu ihrer Verwendung Geheimnis: http://www.russellquinn.com/2008/01/30 / Mehr Schienen-Anwendungen /

Nun, wenn Sie haben unterschiedliche Websites, wie sdfsf.com, dsfsadfsdafdsaf.com usw. Sie viel mehr Tricks zu tun haben werden, weil die Natur von Cookies sie auf die spezifische Domäne beschränkt. Im Wesentlichen ist Cross-Site-Scripting, Gebrauch zu tun, was Sie versuchen, statt Ihrer Sitzung kapern, sie von den anderen lesen.

In diesem Fall wird eine Kombination der gleichen Cookie Geheimnis usw. zu verwenden und dann einige Cross-Site-Scripting Sie können manuell die Session Informationen extrahieren und neu erstellen auf jeder Website (oder, wenn Sie Active Sitzung verwenden {oder NFS-Sitzung dir }, Verknüpfung mit dem bestehenden up). Es ist nicht einfach, aber es kann getan werden.

Oder der Low-Tech-Weg (was ich vorher getan habe) ist einfach die Login-Seite besuchen hat eine speziell gestaltete Login-Seite auf jeder Website, die eine App Cookie auf sie setzt und springt zum nächsten ein. Es ist nicht schön.

Andere Tipps

Mit dem Database Session speichern rel="nofollow. Die kurze davon ist diese:

  

Um die Tabelle zu erzeugen, an der Konsole ausführen

rake db:sessions:create
     

in Ihr environment.rb, umfassen diese Zeile

config.action_controller.session_store = :active_record_store

Versuchen Sie Datenbank-backed-Sitzungen verwendet wird.

In Rails 2.0 gibt es jetzt ein CookieStor, die alle Sitzungsdaten in einem verschlüsselten Cookie speichert auf den Rechner des Kunden.

scroll top