簡體   English   中英

到期的節點會話cookie

[英]Node session cookie that expires

是否可以創建一個會話cookie(一個在瀏覽器關閉時自動刪除)並且還有一個到期時間,以便它會在設定的時間后過期,比如15分鍾,除非用戶繼續使用該網站? 如果他們使用該網站,我想重置過期,所以它持續15分鍾。

我真的很幸運,要么創建一個會話cookie,該會話cookie在瀏覽器關閉時到期,要么作為持久cookie保留,但是使用expires或maxAge參數到期。

我唯一能想到的是創建一個會話cookie,其中存儲有時間戳值和會話中間件,檢查當前時間>時間戳值,然后拒絕請求並通過將其設置為null來刪除cookie 。 如果當前時間<=時間戳,則將時間戳更新為新日期,從而有效地延長會話超時。

雖然我的想法可行,但它讓我覺得有一種更正式的方式來實現我想要的東西。

我目前正在嘗試節點和表達,因此任何針對該構建量身定制的洞察力都將受到贊賞。

因為您創建會話cookie的方式是省略過期,所以您無法使用單個cookie實際執行此操作。

但是,您可以使用兩個cookie,一個會話cookie和一個到期cookie來實現。 以下是使用兩個cookie執行此操作的一些邏輯:

  1. 創建一個隨機數。
  2. 創建會話cookie,例如session=randomNumber
  3. 創建第二個cookie expiry=randomNumber ,在15分鍾后到期。
  4. 讓您的代碼檢查兩個cookie是否存在並包含相同的隨機數。

如果瀏覽器關閉,會話cookie將被刪除。 如果15分鍾過后,第二個cookie將被刪除。 如果瀏覽器已關閉然后重新打開,則不會有會話cookie,即使您輸入另一個cookie,第二個cookie也不會包含相同的隨機數。

通過檢查兩個cookie的存在,您確保已滿足這兩個條件。

而且,如果您希望15分鍾的cookie在任何頁面加載時不斷刷新自己,您可以讓服務器在每個頁面上重新創建該cookie,並在15分鍾后重新創建新的時間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM