4

Expresss.jsのcookie-sessionモジュールを使用してセッションを処理しています。

ページの読み込み (または ajax 呼び出し) ごとにセッションを更新したいと思います。それが彼らが通常どこでも働く方法です。

ドキュメントはそれについて一言も述べていません。

私はこれをやろうとしましたが、成功しませんでした:

app.use(function(req,res,next ){
     req.sessionOptions.maxAge = 20*1000;
     return next();
});
4

1 に答える 1

4

応答 Cookie をクライアントに送信していないと思われます。get ごとに異なる値を含む Cookie を送信するミドルウェアを使用して、(express と cookie-session を使用して) 同じ問題を解決しました。

var cookieSession = require('cookie-session') 

app.use(cookieSession({
  key: cookieKey,
  secret: cookieSecret,
  maxAge: 1 * 60 * 60 * 1000 // 1 hour (rolling)
  })
);

app.get('*', function(req, res, next) {
  // To update the session expiration time we need to send the new
  // expiration in the response cookie.
  // To send again the response cookie to the client we need to
  // update the session object.
  req.session.fake = Date.now();
  next();
});

実際、セッション オブジェクトが変更されない場合、cookie-session v. 1.2.0 はSet-Cookie ヘッダーを設定して応答 Cookie をクライアントに送信しません。

于 2015-10-21T12:13:49.057 に答える