Rails 3.2.8 - 使用POW跨子域共享Devise会话

5
我正在尝试在Rails 3.2.8中设置基于子域的简单博客。 基本上它将具有站点,用户(通过Devise进行身份验证)和会员资格,以将用户连接到站点。 我已经设置了POW,以便myapp.dev正常工作。 每个站点都有一个子域名,我可以使用子域名导航到site#show操作而没有任何问题。 我的问题是,我无法使Devise会话在子域之间共享。 在我的Heroku应用程序上一切正常,但我希望能够在本地测试这个功能。
当我将以下内容添加到session_store.rb中时,会话似乎跨子域工作,但然后我无法注销。
Appname::Application.config.session_store :cookie_store, :key => '_appname_session', domain: :all

当我将结尾改为域名:“.appname.dev”时,它无法正常工作。非常感谢您的帮助!

我不确定这会如何帮助。Devise不是基于Warden吗?您能否提供有关当前为什么无法工作以及直接使用Warden将如何帮助解决问题的详细信息? - dvanderb
现在似乎可以工作了。我相信我必须重新启动服务器或清除我的cookies,尽管我认为我已经这样做了。我需要再次检查,但我认为会话存储文件中的域选项设置为domain: :all。 - dvanderb
1个回答

5
请确保清除cookies并重新启动应用程序。
Appname::Application.config.session_store :cookie_store, :key => '_appname_session', domain: ".appname.dev"

domain: ".appname.dev"是域选项的正确格式。开头的点很重要。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接