【问题标题】:Session cookie not being created only in production会话 cookie 不是仅在生产中创建的
【发布时间】:2015-11-17 23:48:44
【问题描述】:

我已经为此苦苦挣扎了一段时间,只是无法弄清楚为什么这不起作用。我使用 Firefox/Firebug 来查看在开发模式下创建的会话 cookie,但是当我在生产中本地运行时,不会创建会话 cookie。当然,当 CSRF 令牌不在会话 cookie 中并抛出异常时,这会导致各种悲痛。

显而易见的地方是 production.rb 与 development.rb,因为所有其余代码都是相同的,但是我看不出有什么问题,我将这两个文件与一个(测试)新创建的 rails 应用程序进行了比较.

配置信息:

  • session_store => cookie_store(rails 默认)
  • protect_from_forgery with: :exception (application_controller)

感谢任何想法。谢谢,艺术

【问题讨论】:

标签: ruby-on-rails ruby session cookies ruby-on-rails-4.2


【解决方案1】:

最近遇到同样的情况,原来是会话cookie域配置错误的问题。

查看您的应用程序随响应发送的 HTTP 标头。我猜Set-Cookie 标头是按预期为会话 cookie 发送的,但浏览器拒绝保存 cookie,因为标头中指定的域不是 match 您的应用程序正在运行的实际生产域。

要解决此问题,请修复会话存储配置中的域设置。

【讨论】:

    【解决方案2】:

    不,这些都不是问题。它正在使用 Rack::Cached。我没有时间追查它的原因,只是将它从我的构建中删除就可以解决问题而无需做任何其他事情。希望我有时间进一步追踪这一点,以帮助大家。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-27
      • 1970-01-01
      • 1970-01-01
      • 2020-06-28
      • 1970-01-01
      • 1970-01-01
      • 2012-03-01
      • 1970-01-01
      相关资源
      最近更新 更多