【问题标题】:Setting expiry time of cookie in rails在rails中设置cookie的过期时间
【发布时间】:2014-08-01 18:34:51
【问题描述】:

我需要设置一个 4 小时后过期的 cookie。现在,用户可以居住在多个时区。那么,如果我在 rails 中设置 cookie 并根据服务器时间设置过期时间,是否会导致某些用户的过期时间无效,或者 rails 会处理这个问题,还是浏览器 cookie 本身会处理这个问题?我应该在javascript中设置这个cookie,以便用户的浏览器时间来设置到期时间?

谢谢!

【问题讨论】:

  • invalid expiry times for some users 是什么意思?什么是用例?
  • 我需要 cookie 在设置 4 小时后过期。如果服务器的时区与用户的时区不同,并且我在服务器上设置了 cookie,那么它可能会在用户的 4 小时之外的不同时间过期。

标签: ruby-on-rails cookies


【解决方案1】:

我认为您想在设置 4 小时后使 cookie 过期。您只需要指定应该比当前时间早 4 小时的时间。时区无关紧要。因为所有时区的 4 小时都是相同的:P

cookies[:login] = { value: "XJ-122", expires: 4.hour.from_now }

Source

【讨论】:

  • 但是,cookie 存储在浏览器中,浏览器的时区可能与服务器不同。对于不同时区的浏览器,服务器计算的 4 小时可能不同。
  • 您能分享一下您是如何在客户端浏览器上实现 cookie 过期的吗?这将有助于解释逻辑
  • @shreyj 服务器和浏览器之间的时区差异并不重要,因为服务器将发送一个包含时区(可能是它自己的或 UTC/GMT)的到期日期。换句话说,到期日期是一个绝对时间,对浏览器来说是没有歧义的。有关示例,请参见 en.wikipedia.org/wiki/HTTP_cookie#Setting_a_cookie
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-01-11
  • 1970-01-01
  • 2011-09-20
  • 2011-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多