我有一個 NodeJS Express 應用程式,需要在應用程式上設定空閑會話超時和最大會話超時。是否有任何設定或選項可用于設定這些值?我查看了 cookie.expires 和 cookie.maxAge。這些分別用于設定空閑超時和會話超時。有人可以幫我解決這個問題嗎?
提前致謝!
uj5u.com熱心網友回復:
當會話 cookie 在用戶瀏覽器中過期時,會話就會消失。如果您在服務器中實作它,它也會在一定時間后過期。
要設定空閑超時,例如 300 秒,您可以這樣做。每次訪問您的服務器時,您都會再次發送會話 cookie,過期時間為 now 300 秒。如果用戶在 cookie 到期之前沒有再次訪問服務器,則下一次訪問將沒有 cookie,因此用戶不會顯示為已登錄。
要設定總體超時(最大會話超時),請使用服務器代碼。為您的會話資料設定過期時間。此后,每當您根據會話 cookie 中的會話 ID 查找會話資料時,請檢查過期時間。如果會話已過期,則將命中處理到您的服務器,就像用戶未登錄一樣。
uj5u.com熱心網友回復:
“處理會話可以在端、瀏覽器和服務器端完成。
對于服務器端,你必須使用 express-session npm 包這里是設定會話過期時間的示例代碼。
const express = require('express')
const session = require('express-session')
// Use the session middleware
const app = express()
app.use(session({
secret: 'its my secret',
cookie: { maxAge: 60000 }, // value of maxAge is defined in milliseconds.
resave: false,
rolling: false,
saveUninitialized: true
}))
//above-defined code will set session which will get expired after 60 seconds.
不應直接設定 expires 選項;而是只使用 maxAge 選項。resave 強制將會話保存回會話存盤,即使會話在請求期間從未被修改。滾動:強制在每個回應上設定會話識別符號 cookie。到期重置為原來的maxAge,重置到期倒計時。要在會話中設定任何值,請使用 req.session。=“
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/369358.html
上一篇:發布請求失敗后如何自動重試
