没有cookie的Rails 4会话变量

时间:2014-11-25 19:08:30

标签: ruby-on-rails ruby-on-rails-4 session-cookies

由于允许用户选择退出存储cookie的欧盟指令令人敬畏,因此存在以下问题。

我在屏幕顶部显示一条消息,要求用户选择加入或退出。

  1. 如果用户选择使用,则使用rack.policy打开Cookie,并隐藏消息。设置一个cookie变量,表示不再显示该消息以供将来访问。完美
  2. 如果用户选择退出。 Cookies被禁用,很好。消息已被清除....并且会话变量设置为表示不显示此会话的消息。这样会很好,但似乎会话变量的保存方式与cookie相同,并且机架策略不允许显示它。因此,消息会在每一页上闪烁。
  3. 首先,谢谢欧盟。其次,如何在不保存到cookie的情况下保存“会话变量”?

1 个答案:

答案 0 :(得分:0)

除非你尝试寻找更具异国情调的东西,比如浏览器提供的本地存储,否则你不能。 The rails guide明确指出:

所有会话存储都使用cookie来存储每个会话的唯一ID(您必须使用cookie,Rails不允许您在URL中传递会话ID,因为这不太安全)。

我不是律师,但我认为法律适用于用于营销/跟踪目的的Cookie,并不适用于网站所需的Cookie,例如用于身份验证或临时存储的Cookie 。考虑到这一点,您可以将rails的会话cookie用于必备数据,并将单独的cookie用于应用程序可以禁用的其他目的。

我不会把它当作福音,但是this Wired article似乎很好地提供了简化的解释。