2013-05-29 96 views
1

我有一個簡單的控制器方法,其單個任務是設置cookie。在IE9中過期未設置的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

+0

。 – lfender6445

回答

1

IE < = 9塊丟棄具有明確到期小於1.day.from_now

可能的解決方法是設置一個單獨的時間戳的餅乾,餅乾說:remembertoken_expires,在您同時設置:remembertoken,檢查Time.now的時間戳,並在Time.now>:remembertoken_expires時顯式刪除cookie。也爲IE 8確認了

+0

通過將到期時間增加到3.hours.from_now來實現它的效果 - 在此之下的任何內容都不會設置。 – lfender6445