ruby-on-rails - Cookie 与 CookieStore 的 session

标签 ruby-on-rails ruby-on-rails-3 session cookies

在 Rails 3 中,将数据存储在 cookie 中与将数据存储在 session 中( session 存储设置为默认的 CookieStore)有什么区别?

例如

cookie[:foo] = 'bar'

# MyApp::Application.config.session_store :cookie_store, key: '_myapp_session'
session[:foo] = 'bar'

据我所知,两者最终都存储在客户端 cookie 中。

您什么时候会选择使用其中一种而不是另一种?

谢谢。

最佳答案

Rails 3 中的主要区别在于,当您使用 cookie[:foo] = 'bar' 时,用户能够看到 cookie 的值,即 'bar '。当您使用 session[:foo] = 'bar' 时,该值将由 Rails 加密并存储在 _myapp_session Cookie 中。

当您要存储的信息未绑定(bind)到 session 时,您可以使用 cookie[] 格式,例如当用户选择首选语言时。

当您想要存储与当前 session 相关的信息时,例如,您可以使用 session[] 格式。用户的id

From Rails 4 cookies became encrypted by default.

关于ruby-on-rails - Cookie 与 CookieStore 的 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15022497/

相关文章:

javascript - Paypal Embedded Flow 不使用 returnUrl 或 cancelUrl

php - 混淆(如果有的话)$_SESSION 和 $_COOKIE 变量?

ruby-on-rails - Ruby on rails 计划任务

ruby-on-rails - sanitize_sql_array 正在添加额外的、不必要的引号来查询

ruby-on-rails - 防止 puma 在本地运行(ruby on rails)

linux - Ubuntu 10.04 LTS Cron 作业不工作

ruby-on-rails-3 - 将模型移动到 gem 中 - Rails 4.1

python - Django 多个缓存 - 如何选择 session 进入哪个缓存?

java - springMVC中的Httpsession管理

css - 使用 Asset Pipeline 规避 IE8 CSS 文件数限制