2016-04-23 69 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完好无损。 –