[英]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.