我正在将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
可以看到正确的值。