【问题标题】:Rails 4.2 : How disable encryption for cookiesRails 4.2:如何禁用 cookie 加密
【发布时间】:2018-10-12 05:31:53
【问题描述】:

我最近将我的 rails 3.2 应用升级到 rails 4.2。我面临新 Rails 4.2 设置的 cookie 已签名和加密的问题,我不会因为我的应用程序与其他 rails 3 应用程序交互而不会这样做。 我想在 4.2 中重新引入创建 cookie 的旧方法。

【问题讨论】:

  • my answer 是否回答了您的问题?如果是,请将其标记为完成

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


【解决方案1】:

Rails 4 CookieStore 默认加密 cookie 是真的:

如果您设置了 secret_key_base,您的 cookie 将被加密。这 在加密 cookie 中比签名 cookie 更进一步 用户不能更改或阅读。这是默认开始于 导轨 4。

似乎无法通过配置选项将其关闭,因此一种方法是不要设置secret_key_base

另一种方法是使用重新定义的CookieStore#cookie_jar 方法定义您的自定义会话存储:

class ActionDispatch::Session::MyCustomStore < ActionDispatch::Session::CookieStore
  private

  def cookie_jar(request)
    request.cookie_jar.signed
  end
end

config.rb:

config.session_store :my_custom_store

这样,您的 cookie 将保存在 signed jar 中,就像在 Rails 3 中一样。

【讨论】:

    猜你喜欢
    • 2023-02-09
    • 2018-06-03
    • 2015-01-15
    • 2012-03-11
    • 1970-01-01
    • 2015-12-19
    • 2013-08-22
    • 2011-07-23
    • 2011-04-29
    相关资源
    最近更新 更多