2008-09-19 50 views
5

我想通过共享相同会话的不同服务器上安装一些Rails应用程序。我可以在同一台服务器上完成,但不知道是否可以在不同的服务器上共享。任何人已经做过或知道如何做到这一点?通过服务器的Rails会话

谢谢

回答

3

根据您的应用程序是如何设置的,您可以容易在同一个域(foo.domain,bar.domain,域)站点共享的Cookie设置您的应用程序为使用相同的秘密: http://www.russellquinn.com/2008/01/30/multiple-rails-applications/

现在,如果你有不同的网站,如sdfsf.com,dsfsadfsdafdsaf.com等,你将不得不做更多的技巧,因为cookie的本质限制他们到特定的域。基本上你想要做的是使用跨站点脚本来代替劫持你的会话,从其他人那里读取它。

在这种情况下,使用相同的cookie秘密等的组合,然后一些跨站点脚本可以手动提取会话信息,并在每个站点上重新创建它(或如果您使用ActiveRecord会话{或NFS会议dir},与现有的链接)。这并不容易,但可以完成。

或者,低技术的方式(我之前完成的)只是让登录页面访问每个网站上的特制登录页面,在其上设置一个应用程序cookie并将您弹出到下一个页面。它不漂亮。

0

尝试使用数据库支持的会话。

6

使用Database Session store。它的短期是这样的:

生成表,在控制台上,运行

rake db:sessions:create 
在你的environment.rb

,包括该行

config.action_controller.session_store = :active_record_store 
相关问题