按会话ID访问rails会话信息

时间:2009-12-17 21:56:04

标签: ruby-on-rails heroku

我正在使用基于默认cookie的会话存储。基本上,我正在使用heroku,我需要从我的应用程序:http://test1.myapp.com转到heroku一页:http://myapp.heroku.com/billing - 所以当我去heroku url时我需要访问会话。我想访问heroku页面上的会话[:user_id],但是当进入heroku页面时,会生成一个新的会话。

我以为我可以在查询字符串中的主url上传递session_id,但我不知道如何从heroku url页面访问它。

我试过了:

session[params[:sid]][:user_id]  

但它不起作用。如果您知道会话ID,是否可以访问会话信息?或者是否有另一种方法从另一个URL读取会话信息(但所有在同一个rails应用程序中)?

感谢。

1 个答案:

答案 0 :(得分:0)

为了实现这一点,您需要在Heroku中设置域名,以便Heroku应用程序在与主应用程序相同的TLD下运行。为此,请将您的域名添加到结算应用中,如下所示:

$ heroku domains:add billing.myapp.com

请务必按照Heroku's instructions设置您的DNS。

您的结算应用将在http://billing.myapp.com/billing(在Heroku上)生效。这样控制器应该能够访问相同的会话和cookie。

请务必在两个应用中的environments / production.rb中设置会话域:

config.action_controller.session = { :domain => ".myapp.com" }

我还应该提一下,您可能会考虑在应用程序之间使用某种共享身份验证或令牌身份验证,因为Cookie可能会被黑客攻击或以其他方式受到攻击。