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