0

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

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

我试过这个:

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

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

谢谢。

4

1 回答 1

0

为了使其正常工作,您需要在 Heroku 中设置您的域,以便 Heroku 应用程序在与主应用程序相同的 TLD 下运行。为此,请将您的域添加到您的计费应用程序中,如下所示:

$ heroku domains:add billing.myapp.com

确保按照Heroku 的说明设置 DNS。

然后,您的计费应用程序将位于http://billing.myapp.com/billing(在 Heroku 上)。这样控制器应该能够访问相同的会话和 cookie。

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

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

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

于 2011-01-25T15:42:02.500 回答