从Rails 4.2升级到Rails 5.2:Cookies数据不再可读

时间:2019-03-19 13:02:58

标签: ruby-on-rails cookies

我正在将Rails 4.2应用程序迁移到Rails 5.2。

在代码中,我们设置了一个cookie:

cookies.permanent.signed["wsid#{session[:user_id]}".to_sym] = { value: wsid, httponly: true }

然后使用以下命令将其取回:

cookies.permanent.signed["wsid#{session[:user_id]}".to_sym]

升级Rails后,该值将不再可读。

仔细检查the Upgrading Ruby on Rails guide后,我发现它是从Rails 5.1迁移到5.2,there is a change for cookies

因此我将以下内容添加到所有环境文件中:

  # controls whether signed and encrypted cookies use the AES-256-GCM cipher or
  # the older AES-256-CBC cipher. It defaults to true.
  config.action_dispatch.use_authenticated_cookie_encryption = false

但是我仍然无法访问这些值。

有人可以帮我吗?

更新

我了解了secret_key_base,并且了解到cookies正在对内部数据进行加密,但是实际上上述代码定义的值似乎未加密,因为使用了Base64.decode64可以看到正确的值。

0 个答案:

没有答案