2011-09-10 12 views
1

私は、NodeJSを使用している(つまり、パッケージを使用していない)ウェブサーバーの一部として自分自身のクッキーを書いています。私は次のように、このうまく使って何かをすることができました:NodeJSでCookieの有効期限を設定するにはどうすればよいですか?

response.writeHead(200, { 
    'Set-Cookie':'sesh=wakadoo' 
}); 

しかし、私は、彼らは現在、(すべてではないと言うことである)よりも、私のクッキーは、より永続的なものにしたいと思います。私は次のようなことを試みました:

var curdate = new Date(); 
response.writeHead(200, { 
    'Set-Cookie':'sesh=wakadoo; expires='+curdate.toUTCString() 
}); 

しかし、これはうまくいきません。クロムは設定した有効期限を無視し、firefoxはページをロードしません。私の現在の目標は、単に私のクッキーにブラウザによって解釈される有効期限を与えることです...誰もこれを行う方法を知っていますか?

ベスト


サミ

+0

あなたは、私が特にパッケージなしでこれをやろうとしている[接続-cookieParserを](http://senchalabs.github.com/connect/middleware-cookieParser.html) – Raynos

+0

を試してみました。もし私がパッケージを使用するなら、それはクッキー・ノードになるでしょう。 – thisissami

+0

私はあなたにエクスプレスを使用するか、とにかく接続しなければなりません。だから、単に 'cookieParser'を使用してください – Raynos

答えて

5

日のように、いくつかのリードタイムを満了する与えてください。あなたがそれを提出するときに期限が切れているので、クライアント/サーバはそれを読むことができません。

response.writeHead(200, { 
    'Set-Cookie':'sesh=wakadoo; expires='+new Date(new Date().getTime()+86409000).toUTCString() 
}); 
+0

完璧でした!これはおそらくmozillaが修正すべきバグでしょう...同じ日にクッキーが期限切れになるためページがハングアップしないはずです...クロムはそれを非永続クッキーのように扱います。 – thisissami

+0

ハングアップしますか?それはちょっと奇妙です。私はそのための簡単なテストを書いています。 –

+1

実装する場合は、JSON .toUTCString();の最後にセミコロンを削除します。 - 句読点は不要 – eugene

関連する問題