1

我有一个简单的控制器方法,其唯一任务是设置 cookie。

def consume
    cookies.signed[:luke_luke] = {:value => 'luke'}
    cookies.signed[:remembertoken] = {
      :value => "user",
      :expires => 1.hour.from_now
    }
    render :text => "Failure"
end

当我加载 IE 9 并在控制台中键入 document.cookie 时,我只取回了 luke_luke 的值,但不记得令牌。当我删除记住令牌的过期时间时,一切都很好。是什么赋予了?

使用 Rails 3.2.13

4

1 回答 1

1

IE <= 9 丢弃显式过期时间小于 1.day.from_now 的 cookie

一种可能的解决方法是设置一个单独的时间戳 cookie,例如:remembertoken_expires,同时设置:remembertoken,对照 Time.now 检查时间戳,如果 Time.now > :remembertoken_expires,则显式删除 cookie。

于 2013-05-29T20:29:20.933 回答