6

我希望在不同服务器上共享相同会话的一些 Rails 应用程序。我可以在同一台服务器上完成,但不知道是否可以在不同的服务器上共享。有人已经做过或知道怎么做吗?

谢谢

4

4 回答 4

6

使用数据库会话存储。它的短处是这样的:

要生成表,请在控制台中运行

rake db:sessions:create

在你的 environment.rb 中,包括这一行

config.action_controller.session_store = :active_record_store
于 2008-09-19T19:55:54.013 回答
3

根据您的应用程序的设置方式,您可以通过将您的应用程序设置为使用相同的秘密: http://www.russellquinn,轻松地共享来自同一域(foo.domain、bar.domain、域)中的站点的 cookie 。 com/2008/01/30/multiple-rails-applications/

现在,如果您有不同的站点,例如 sdfsf.com、dsfsadfsdafdsaf.com 等,您将不得不做更多的技巧,因为 cookie 的本质将它们限制在特定的域中。本质上,您尝试做的是使用跨站点脚本,而不是劫持您的会话,而是从其他会话中读取它。

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

或者,低技术的方式(我以前做过)只是让登录页面访问每个站点上的特制登录页面,该页面设置一个应用程序 cookie 并将您弹回下一个。它不漂亮。

于 2008-09-19T19:39:06.127 回答
0

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

于 2008-09-19T19:39:03.677 回答
0

在 Rails 2.0 中,现在有一个 CookieStore,它将所有会话数据存储在客户端机器上的加密 cookie 中。

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

于 2008-09-19T19:55:56.570 回答