我刚刚将一个Rails 3.2.17应用程序部署到AWS Elastic Beanstalk。
我首先无法登录应用程序(我们使用Devise)并且在日志中不断获取WARNING: Can't verify CSRF token authenticity
。
然后,当我尝试在Chrome开发者工具中查看会话时,没有为应用程序设置任何Cookie,这非常奇怪。
然后我尝试从session
打印出来ApplicationController
,并且每次我得到不同的session_id
。
{"session_id"=>"e0f2ccf03d07f48def5c4fbb872f2c0c", "last_action_time"=>Wed, 23 Sep 2015 08:40:09 EDT -04:00, "test"=>"test"}
....
{"session_id"=>"0f9ef3aaf150619ac408da2bac4f51ae", "last_action_time"=>Wed, 23 Sep 2015 08:43:24 EDT -04:00, "test"=>"test"}
这是我的session_store.rb
:
MyApp::Application.config.session_store :cookie_store, key: ENV['SESSION_NAME'], domain: :all
我还需要做其他事吗?谢谢!此应用程序在单个EC2实例(登台环境)中正常工作。
答案 0 :(得分:1)
domain: :all
是罪魁祸首。它假定TLD长度为1而矿山不是。删除它,事情恢复正常。如果您想跨子域维护会话(domain: :all
的目的),您可以指定域明确性。