2016-07-03 8 views
1

私は以下のようにres.cookieを使ってクッキーを設定しようとしている:セットクッキーjで表示されます。接頭辞

res.cookie('userId',req.user._id); //set cookie here 
console.log(req.user._id); //returned correct value, eg abc 

その後、私はJを見ている:私のクッキーの「ABC」は、なぜこれが起こる?

+0

cookieの値はどうですか? – robertklep

+0

@robertklepは正しく動作しません。それを解析するためのクッキーのnpmパッケージ。 –

答えて

1

クッキーはクライアント側に暗号化されています。 cookieからuser.idを正しく取得するには、cookie-parser が必要です。使用方法については、そのマニュアルを参照してください。

1

Express 4 docsによると、res.cookie(name, value [, options])は値にクッキー名を設定します。 valueパラメータは、JSONに変換された文字列またはオブジェクトです。この場合

req.user._idはあなたがres.cookie('userId', JSON.stringify(req.user._id))

1

としてクッキーを設定しますので、私はこれは少し遅れているけど、私はこの問題に出くわした自分自身をし、少し周り掘りされているオブジェクトです。 JSON文字列の先頭に「j:」という接頭辞が付いているように見えるので、JSON文字列を解析して戻ってくることがわかります。これは基本的には、他の構文解析方法を使用している場合は、手動で "j:"を削除する必要があることを意味します。

0

私はクライアントサイドのng2クッキーNodeJS側でクッキーパーサー& express-sessionを使用しています。また、私はちょうどres.cookie('cookieName', cookieValue.toString(), cookieOptions)を行なったし、これは私が探していたものを私に与えたので、

:(すなわち59bca61b74d1cac10ce50d0cではなくj:59bca61b74d1cac10ce50d0cとしてのuserIdを読み取ることが期待ではなく、クライアント側でいくつかの魔法を行う必要がありました。

console.log('cookies', req.cookies)を実行すると、正常に動作していることが表示されますが、req.headers.cookieは2つのuserId cookie(まだテスト中)を表示します。

関連する問題