在IE9中没有设置过期cookie



我有一个简单的控制器方法,它的唯一任务是设置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,并键入文档。我只得到luke_luke的值,而没有得到token。当我移除记忆令牌上的过期时,一切都好了。到底发生了什么事?

Using Rails 3.2.13

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

一个可能的解决方法是设置一个单独的带时间戳的cookie,例如:remembertoken_expires,在设置:remembertoken的同时,根据时间检查时间戳。现在,并明确地删除cookie,如果时间。现在>:memorbertoken_expires .

最新更新