Dan*_*ell 4 ruby-on-rails heroku csrf devise
我的Rails 4.2应用程序在Heroku上运行最新版本的Devise时出现问题.我将在前面说明我在相当长的一段时间内没有将任何代码更改推送到生产中,并且此问题仅在最近才开始.
当我登录时,收到错误消息"您想要的更改被拒绝了".当我查看日志时,我可以看到CSRF令牌存在问题.
2015-04-04T19:52:22.430533+00:00 app[web.1]: Started POST "/users/sign_in" for 76.119.72.58 at 2015-04-04 19:52:22 +0000
2015-04-04T19:52:22.435480+00:00 app[web.1]: Completed 422 Unprocessable Entity in 1ms
2015-04-04T19:52:22.434143+00:00 app[web.1]: Processing by Devise::SessionsController#create as HTML
2015-04-04T19:52:22.434211+00:00 app[web.1]: Parameters: {"utf8"=>"?", "authenticity_token"=>"94uXDeV2wbb1XMfUL445zrIrbhS92pwe+9tWxkyvwtJhnZtZS3ydYOeP2grZvT/t2YMa2A2k/pA+U5X3gFXlAw==", "user"=>{"email"=>"test@example.com", "password"=>"[FILTERED]", "remember_me"=>"0"}, "commit"=>"Log in"}
2015-04-04T19:52:22.435112+00:00 app[web.1]: Can't verify CSRF token authenticity
2015-04-04T19:52:22.438522+00:00 app[web.1]:
Run Code Online (Sandbox Code Playgroud)
我一直在寻找StackOverflow的答案,并尝试了我能想到的一切.到目前为止,我尝试了几件不同的事情:
我添加了这一行,我session_store.rb
认为在开发和生产环境之间混合使用cookie可能是一个问题.Rails.application.config.session_store:cookie_store,key:"_ abhnation_session _#{Rails.env}"
我没有rails-api
宝石,一些讨论建议可能是罪魁祸首.
我也注意到问题严格来说是Firefox,并不是特定于环境的.它发生在开发,测试和生产中.我只能通过存根会话来测试它.
我无法弄清楚导致这种情况发生的原因.我几个月内没有对面向公众的生产环境进行任何改变.
以下是代码链接:http://github.com/danielbonnell/abhnation-rails 以下是实时网站:http://abhnation.herokuapp.com/
这对我来说是 Cloudflare 的一个问题。查看错误时,我错过了以下日志行:
HTTP Origin header (https://test-app.my.app) didn't match request.base_url (http://test-app.my.app)
Run Code Online (Sandbox Code Playgroud)
我为我的域启用了灵活 SSL 模式。这需要设置为 Full SSL,以确保https://
在 Cloudflare 与您的应用程序通信时强制执行。
归档时间: |
|
查看次数: |
9373 次 |
最近记录: |