2016-03-22 8 views
2

Express 4.xに問題があります。クッキーを設定できません。私はAjaxリクエストを介してクッキーを設定したい、私はリクエストを行う、私のレスポンスヘッダで私のサーバ側のres.cookie()が実行される。私は 'set-cookie'ヘッダを特定の名前と値で見つけることができる。クッキーは登録されません。私はHttpOnlyまたは安全なフラグを持っていません。ExpressJsでクッキーを設定できない

クッキーは例を設定します。

res.cookie('my_cookie','value',{maxAge:500,secure:false,httpOnly:false}); 

何私が気づいたことは、私はMAXAGE 500を設定した場合、たとえば、応答ヘッダから私のクッキーの有効期限は、約5時間前であるということですので、私は大きなを追加しようとしました価値はあるが、何も起こらなかった。

私のようなものですset-cookieヘッダーは無視されます。私はAngularJSを使用せず、単にjQueryを使用します。

私はJSコンソールからdocument.cookieでのSet-Cookieコンテンツを置く場合は、クッキーが...

事前のおかげで、私の悪い英語のため申し訳ありませんが登録されています。

+2

MAXAGE: 'に有効期限の相対を設定するための便利なオプション現在の時刻をミリ秒で表します。 1000を設定すると、1秒後に有効期限が切れます。 200000のように 'maxAge'に高い値を使うか、' maxAge'を全く使わないで、まだクッキーを設定していませんか?どのようにクッキーをチェックしていますか? – klauskpm

+0

あなたの返信ありがとう!私はmaxAgeを全く使わないようにしましたが、より高い価値と同じ結果を得ました。私はjavacriptのコンソール(httpOnlyとsecureがfalseの場合)でCookieをチェックしています。サーバー側では、ページをリロードするたびに何も表示されません。私はセッションを使用しようとしましたが、同じ結果、セッション値は保存されません。 –

+0

Ok。 'cookie-parser'を使わずに自分のサーバで自分のコードをテストし、' maxAge'属性を200000に変更しました。したがって、 'cookie-parser'は動作するためには必要ありません。私は 'document.cookie'でチェックしました。あなたはそのクッキーをどこに置いていますか?あなたを助けるために私たちにもっとコードを教えてもらえますか? – klauskpm

答えて

1

バージョン4.0では、よりモジュラーなアーキテクチャのためにライブラリから多くの便利なミドルウェアが削除されました。この場合、cookie-parserミドルウェアを参照する必要があります。それはreq.cookiesなしにすることであるだけで、空また、クッキーに署名することを必要とする{}.

$npm install cookie-parser

var express  = require('express') 
var cookieParser = require('cookie-parser') 

var app = express() 
app.use(cookieParser()) 

enter image description here

+0

こんにちは、ありがとう!さて、私はcookie-parserミドルウェアを使用しています。でも、それは動作していません。 –

+1

これを解明しましたか?私もこの問題を抱えています。しかし、それは時にはうまく動作します。 –

+0

詳細が必要です。サーバー設定、libs、バージョン実際に何をしようとしていますか?そしてあなたは署名しようとしましたか?セキュリティ設定では、署名をする必要があります。 – adamrights

関連する問題