Rails 4.2:如何禁用cookie加密

时间:2018-05-02 07:13:40

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

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

1 个答案:

答案 0 :(得分:1)

默认情况下,Rails 4 CookieStore会对Cookie进行加密:

  

如果您设置了secret_key_base,您的Cookie将被加密。这个   比加密的cookie中的签名cookie更进一步   用户无法更改或阅读。这是默认的开始   Rails 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中一样。