【问题标题】:RailsTutorial: Why is there always some session?RailsTutorial:为什么总是有一些会话?
【发布时间】:2016-09-23 09:13:53
【问题描述】:
我关注Railstutorial。现在在第 8 章讨论会话。
我正在尝试验证每次用户注销时会话 cookie 是否被销毁
我正在使用 Firebug->cookie 选项卡来验证这一点。
但我注意到无论我是否登录,总会有一些会话。
我注意到的唯一区别是登录前、有效登录后和注销后都有新的会话 ID。
所以我的问题是为什么每次都有一些会话
【问题讨论】:
标签:
ruby-on-rails
session
cookies
railstutorial.org
【解决方案1】:
我目前也在关注 Railstutorial,我自己也一直在想这个问题。我假设您指的是教程中的这个练习(第 8.3 节):
- 通过检查站点 cookie,确认会话正确
退出后删除。
按照我的阅读方式,这意味着应该在注销后删除会话 cookie,但似乎并非如此。我在网上找不到具体的信息,所以我快速设置了一个空的 Rails 应用程序,看看它是否也会设置 cookie。瞧,显然每个 Rails 应用程序都会自动创建一个会话 cookie,即使您没有在应用程序特定代码中执行任何与会话相关的操作。
这并不能回答 Rails 在那个 cookie 中究竟存储了什么,但至少我不会发疯。我认为应该删除或至少更改该练习。
【解决方案2】:
会话用于为您的应用程序用户保存各种数据。
它们的存在不应取决于您的用户是否登录。
例如,一个要求用户选择公制的天气网站应该能够记住他们的选择,而无需他们先登录。
当然还有其他原因总是将会话分配给您的用户(例如日志记录等)。