私は以下のようにres.cookieを使ってクッキーを設定しようとしている:セットクッキーjで表示されます。接頭辞
res.cookie('userId',req.user._id); //set cookie here
console.log(req.user._id); //returned correct value, eg abc
その後、私はJを見ている:私のクッキーの「ABC」は、なぜこれが起こる?
私は以下のようにres.cookieを使ってクッキーを設定しようとしている:セットクッキーjで表示されます。接頭辞
res.cookie('userId',req.user._id); //set cookie here
console.log(req.user._id); //returned correct value, eg abc
その後、私はJを見ている:私のクッキーの「ABC」は、なぜこれが起こる?
クッキーはクライアント側に暗号化されています。 cookieからuser.idを正しく取得するには、cookie-parser が必要です。使用方法については、そのマニュアルを参照してください。
Express 4 docsによると、res.cookie(name, value [, options])
は値にクッキー名を設定します。 valueパラメータは、JSONに変換された文字列またはオブジェクトです。この場合
、req.user._id
はあなたがres.cookie('userId', JSON.stringify(req.user._id))
としてクッキーを設定しますので、私はこれは少し遅れているけど、私はこの問題に出くわした自分自身をし、少し周り掘りされているオブジェクトです。 JSON文字列の先頭に「j:」という接頭辞が付いているように見えるので、JSON文字列を解析して戻ってくることがわかります。これは基本的には、他の構文解析方法を使用している場合は、手動で "j:"を削除する必要があることを意味します。
私はクライアントサイドの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(まだテスト中)を表示します。
cookieの値はどうですか? – robertklep
@robertklepは正しく動作しません。それを解析するためのクッキーのnpmパッケージ。 –