我希望在不同服务器上共享相同会话的一些 Rails 应用程序。我可以在同一台服务器上完成,但不知道是否可以在不同的服务器上共享。有人已经做过或知道怎么做吗?
谢谢
我希望在不同服务器上共享相同会话的一些 Rails 应用程序。我可以在同一台服务器上完成,但不知道是否可以在不同的服务器上共享。有人已经做过或知道怎么做吗?
谢谢
使用数据库会话存储。它的短处是这样的:
要生成表,请在控制台中运行
rake db:sessions:create
在你的 environment.rb 中,包括这一行
config.action_controller.session_store = :active_record_store
根据您的应用程序的设置方式,您可以通过将您的应用程序设置为使用相同的秘密: http://www.russellquinn,轻松地共享来自同一域(foo.domain、bar.domain、域)中的站点的 cookie 。 com/2008/01/30/multiple-rails-applications/
现在,如果您有不同的站点,例如 sdfsf.com、dsfsadfsdafdsaf.com 等,您将不得不做更多的技巧,因为 cookie 的本质将它们限制在特定的域中。本质上,您尝试做的是使用跨站点脚本,而不是劫持您的会话,而是从其他会话中读取它。
在这种情况下,结合使用相同的 cookie 秘密等,然后使用一些跨站点脚本,您可以手动提取会话信息并在每个站点上重新创建它(或者如果您使用 ActiveRecord 会话 {或 NFS 会话目录},请链接与现有的一样)。这并不容易,但可以做到。
或者,低技术的方式(我以前做过)只是让登录页面访问每个站点上的特制登录页面,该页面设置一个应用程序 cookie 并将您弹回下一个。它不漂亮。
尝试使用数据库支持的会话。
在 Rails 2.0 中,现在有一个 CookieStore,它将所有会话数据存储在客户端机器上的加密 cookie 中。
http://izumi.plan99.net/blog/index.php/2007/11/25/rails-20-cookie-session-store-and-security/