2008-09-19 4 views
5

Je voudrais avoir des applications de rails sur différents serveurs partageant la même session. Je peux le faire dans le même serveur mais je ne sais pas s'il est possible de partager sur différents serveurs. Quelqu'un a déjà fait ou sait comment le faire?Rails Séances sur les serveurs

Merci

Répondre

3

Selon la façon dont votre application est configuré, vous pouvez facilement partager les cookies des sites dans le même domaine (foo.domain, bar.domain, domaine) en définissant vos applications pour utiliser le même secret: http://www.russellquinn.com/2008/01/30/multiple-rails-applications/ Maintenant, si vous avez des sites disparates, tels que sdfsf.com, dsfsadfsdafdsaf.com, etc., vous devrez faire beaucoup plus d'astuces car la nature même des cookies les restreint au domaine spécifique. Essentiellement, ce que vous essayez de faire est d'utiliser des scripts inter-sites pour, au lieu de détourner votre session, la lire à partir des autres. Dans ce cas, une combinaison de l'utilisation du même cookie secret etc et de scripts inter-sites vous permet d'extraire manuellement les informations de session et de les recréer sur chaque site (ou si vous utilisez la session ActiveRecord {ou la session NFS dir}, lien avec l'existant). Ce n'est pas facile, mais cela peut être fait. Ou, le moyen low-tech (que j'ai fait auparavant) est tout simplement avoir la page de connexion visiter une page de connexion spécialement conçue sur chaque site qui définit un cookie d'application sur elle et vous rebondit à la suivante. Ce n'est pas joli.

0

Essayez d'utiliser des sessions sauvegardées base de données.

6

Utilisez le Database Session store. Le court est ceci:

Pour générer la table, à la console, exécutez

rake db:sessions:create 

dans votre environment.rb, inclure cette ligne

config.action_controller.session_store = :active_record_store 
Questions connexes