19

Express 3.0を使用してNode.jsでCookieの有効期限を設定しようとしましたが、何も機能していません。

私の最初の試み:

res.cookie('user', user, { maxAge: 9000, httpOnly: true });

Chromeによると、有効期限が無効なCookieで終了するだけです。次に、代わりに「有効期限」を設定しようとしました。

res.cookie('user', user, { expires: new Date(new Date().getTime()+5*60*1000), httpOnly: true });

そして今、私のクッキーは単なるセッションクッキーです。

誰かがこれを修正する方法を知っていますか?

4

4 に答える 4

37

maxAgeはミリ秒単位であることに注意してください-

res.cookie('jwtToken', token, { maxAge: 2 * 60 * 60 * 1000, httpOnly: true }); // maxAge: 2 hours
于 2017-09-03T18:23:56.767 に答える
11

あなたは使用する必要がありますreq.session.cookie

req.session.cookie.expires = false;

req.session.cookie.maxAge = 5 * 60 * 1000;

connectdocsも参照してください。

于 2013-01-05T22:16:24.087 に答える
5

受け入れられた答えは私には機能しません..しかし、元の質問には機能するバージョンがあります。例えば

var language = 'en';
//10 * 365 * 24 * 60 * 60 * 1000 === 315360000000, or 10 years in milliseconds
var expiryDate = new Date(Number(new Date()) + 315360000000); 
this.__res.cookie('lang', language, { expires: expiryDate, httpOnly: true });
于 2013-12-19T14:36:45.340 に答える
0
res.cookie('cookieName', jsonObject, { expires: new Date(Date.now() + (30*24*3600000)) }); /*set 1month,

Cookieの有効期限の初期化に関連する問題が発生した場合は、自分でデバッグしてください。自分でデバッグして、次のように修正する必要がありました。

  • 初期化された時間を新しい変数に挿入します
var expiryDate = new Date(Date.now() + (60*24*3600000));
console.log(expiryDate);
  • アスペクトとして表示されている場合は、調べてくださいcookieParser npm v
于 2021-08-08T17:33:09.153 に答える