簡體   English   中英

在express.js中設置cookie出現j:前綴

[英]Set cookie in express.js appear j: prefix

我正在嘗試使用res.cookie設置cookie,如下所示:

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

然后我在我的cookie中看到j:“abc”,為什么會發生這種情況?

我知道這有點晚了,但我自己也遇到了這個問題並且一直在挖掘。 看起來他們用“j:”為任何JSON字符串添加前綴,因此他們知道在解析它時它是一個JSON字符串。 這基本上意味着你必須手動刪除“j:”,如果你正在使用其他方式解析它。

Cookie被加密到客戶端。 您需要一個cookie解析器才能從您的cookie中正確獲取user.id. 請參閱其文檔以供使用。

根據Express 4文檔res.cookie(name, value [, options])將cookie名稱設置為值。 value參數可以是轉換為JSON的字符串或對象。

在這個例子中, req.user._id是一個對象,因此您可以將cookie設置為res.cookie('userId', JSON.stringify(req.user._id))

所以我在NodeJS端使用cookie-parser和express-session,在客戶端使用ng2-cookies。 我也期待讀取userId為59bca61b74d1cac10ce50d0c而不是j:59bca61b74d1cac10ce50d0c :(

所以,不要在客戶端做一些魔術我只是做了res.cookie('cookieName', cookieValue.toString(), cookieOptions) ,這給了我正在尋找的東西。

做一個console.log('cookies', req.cookies)顯示一切正常,雖然req.headers.cookie顯示2個userId cookies(仍在測試)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM