簡體   English   中英

無法在瀏覽器中更改快速會話的到期日期

[英]Unable to change express-session expiry date in browser

我在項目中使用快速會話。 假設已經在Web瀏覽器和Node js服務器之間實例化了一個會話,默認有效時間為一小時。 現在,瀏覽器中提供了具有connect.sid名稱的cookie。

我需要一個函數來延長用戶瀏覽器和節點js中的到期日期時間。 怎么做?

我已經通過以下方式在服務器端完成了此操作,但它並未反映在用戶瀏覽器中。 有沒有可能將新的到期日期時間推送到用戶瀏覽器Cookie?

var hour = 3600000;
req.session.cookie.expires = new Date(Date.now() + hour);
req.session.cookie.maxAge = hour;

在瀏覽器中讀取/寫入cookie與在node.js中操作cookie的方式略有不同。 在瀏覽器中,cookies作為document對象的屬性(即document.cookie存儲為由分號分隔的一串鍵值對。

這是一個簡單的函數,可讓您創建/修改cookie(瀏覽器處理覆蓋現有cookie的邏輯):

function createCookie (name, value, days) {
  var expires = ""
  var date = new Date()
  if (days) {
    date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000))
    expires = "; expires=" + date.toGMTString()
  }
  document.cookie = name + "=" + value + expires + "; path=/"    
}

因此,在您的情況下,您只需致電:

var hour = 3600000;
createCookie('expires', new Date(Date.now() + hour), 1); // I've arbitrarily chosen one day as the expiry here
createCookie('maxAge', hour, 1); // here too

或類似的東西。 希望這可以幫助!

暫無
暫無

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

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