2016-04-23 71 views
1

我正在用angularjs前端構建一個簡單的web應用程序,並使用nodejs作爲後端。在angularjs中訪問nodejs cookie

隨着我的NodeJS設置我在用戶登錄後,一些餅乾。

res.cookie(name,value) 

我創造每兩個cookie的用戶名和USER_ID。 當我看到一組Cookie,使用

res.json(req.cookies) 

和JSON響應具有實際USER_ID還帶着另一個關鍵 connect.sid,也許是因爲我使用的連接閃光,我不不知道。

但是,當我訪問cookies在使用$ cookies.get( 'USER_ID')angularjs 價值,是一些編碼值,

對於如: 實際USER_ID:571be8d34666cf69664645d5

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

如何獲得實際用戶ID?

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

我在我的應用程序中使用passportjs,express-session,connect-flash,connect-mongo,cookie解析器。

+0

「價值」來自哪裏?它是一個對象嗎? – hassansin

+0

我正在使用req.user._id設置值 –

回答

1

而不是使用兩個不同的Cookie,你可以將對象從快遞餅乾,並在角度方面,你可以得到由餅乾:

$cookies.getObject('cookiename',object) 

在你的情況下,或者寫一個函數用於拆分cookie或使用JSON.parse(json)解析來自express的cookie。 我做了其他的方式,並設法讀取快遞中的cookie對象JSON.parse(cookieobj.user_id)

0

看來,對於角1.4,你應該使用$cookies.getObject('user_id')來反序列化版本的值。首先,如果不是解決方案,請在控制檯上檢查cookie的實際值以嘗試瞭解j:"571be8d34666cf69664645d5"來自哪裏。

+0

我查看了角度文檔,並嘗試過,它給了我一個錯誤:位置爲0的JSON中的意外標記j在控制檯上,document.cookie也給了我相同的價值。我不明白這是從哪裏來的,因爲用戶名cookie完好無損。 –