私がExpress Session sの有効期限で見つけることができるすべては、クッキーを設定することです。
session.cookie.expires = null; // Browser session cookie
session.cookie.expires = 7 * 24 * 3600 * 1000; // Week long cookie
ただし、Cookieの有効期限はsecret
では「保護」されていません。これらはブラウザが管理するCookie設定にすぎないためです。
セッションの有効期限をセッションストアに設定するにはどうすればよいですか?理論的には、誰かがあなたのコンピューターを使用するとき、サーバー側のセッションもCookieと同時に期限切れにならない場合、誰かが期限切れのCookieの有効期限を「修正」してセッションを継続できるからです。
これがどのように機能するのか、またはこれを設定/変更する方法について何も見つかりません。
セッションミドルウェアでは、暗号化されたセッションIDのみがクライアント側のCookieに保存されます。期限切れの日付はreq.session.cookie.expires
としてサーバー側ストアに格納されます。したがって、カスタムミドルを追加して、現在のセッションが期限切れかどうかを確認できます。
// ...
app.use(express.cookieParser());
app.use(express.session({secret:'yoursecret', cookie:{maxAge:6000}}));
app.use(function(req, res, next) {
// if now() is after `req.session.cookie.expires`
// regenerate the session
next();
});
// ...