簡體   English   中英

在 angularjs 中訪問 nodejs cookie

[英]Accessing nodejs cookies in angularjs

我正在使用 nodejs 作為后端和 angularjs 前端構建一個簡單的 Web 應用程序。

使用 nodejs,我在用戶登錄后設置了一些 cookie。

res.cookie(name,value)

我正在為 username 和 user_id 創建兩個 cookie。 當我看到設置的 cookie 時,使用

res.json(req.cookies)

並且 json 響應具有實際的 user_id 以及另一個鍵connect.sid ,也許是因為我使用的是 connect-flash,我不知道。

但是當我使用 $cookies.get('user_id') 訪問 angularjs 中的 cookie 時,該值是一些編碼值,

例如:對於實際的 user_id : 571be8d34666cf69664645d5

我得到j%3A%22571be8d34666cf69664645d5%22

我怎樣才能獲得實際的用戶 ID?

我知道真正的 ID 在字符串之間,我可以通過使用一些字符串操作來獲取它,但是還有另一種方法。

我在我的應用程序中使用了passportjs、express-session、connect-flash、connect-mongo、cookie-parser。

您可以在 express 的 cookie 中設置對象,而不是使用兩個不同的 cookie,而在 angular 方面,您可以通過以下方式獲取 cookie:

$cookies.getObject('cookiename',object)

在您的情況下,要么編寫一個用於拆分 cookie 的函數,要么使用JSON.parse(json)來解析來自 express 的 cookie。 我以其他方式完成並設法通過JSON.parse(cookieobj.user_id)在 express 中讀取 cookie 對象

似乎從 angular 1.4 開始,您應該使用$cookies.getObject('user_id')來反序列化該值的版本。 首先,如果不是解決方案,請在控制台上檢查 cookie 的實際值,以嘗試了解j:"571be8d34666cf69664645d5"來源。

暫無
暫無

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

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