Rails - Elastic Beanstalk AWS - 未维护的会话

时间:2015-09-23 12:53:58

标签: ruby-on-rails session amazon-web-services amazon-ec2 elastic-beanstalk

我刚刚将一个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实例(登台环境)中正常工作。

1 个答案:

答案 0 :(得分:1)

domain: :all是罪魁祸首。它假定TLD长度为1而矿山不是。删除它,事情恢复正常。如果您想跨子域维护会话(domain: :all的目的),您可以指定域明确性。