服务器上的Rails会话
时间:2020-03-06 14:27:29 来源:igfitidea点击:
我想在共享同一会话的不同服务器上安装一些Rails应用程序。我可以在同一台服务器上完成此操作,但不知道是否可以在不同服务器上共享。任何人已经做过或者知道如何做?
谢谢
解决方案
尝试使用数据库支持的会话。
根据应用程序的设置方式,通过将应用程序设置为使用相同的机密,可以轻松共享来自同一域(foo.domain,bar.domain,domain)中站点的cookie:
http://www.russellquinn.com/2008/01/30/multiple-rails-applications/
现在,如果我们拥有不同的网站,例如sdfsf.com,dsfsadfsdafdsaf.com等,则我们将不得不做更多的技巧,因为cookie的本质将它们限制在特定的域中。本质上,我们想做的是使用跨站点脚本执行,而不是劫持会话,而是从其他会话中读取会话。
在这种情况下,可以结合使用相同的Cookie秘密等内容,然后再使用一些跨站点脚本,我们可以手动提取会话信息并在每个站点上重新创建它(或者,如果我们使用ActiveRecord会话{或者NFS会话目录},与现有的一个)。这并不容易,但是可以做到。
或者,低技术含量的方法(我之前已经做过)只是让登录页面访问每个站点上的特制登录页面,从而在其上设置应用程序cookie并跳至下一个。不好看
使用数据库会话存储。简短的是:
To generate the table, at the console, run rake db:sessions:create in your environment.rb, include this line config.action_controller.session_store = :active_record_store
在Rails 2.0中,现在有一个CookieStore,它将所有会话数据存储在客户端计算机上的加密cookie中。
http://izumi.plan99.net/blog/index.php/2007/11/25/rails-20-cookie-session-store-and-security/