在angularjs中访问nodejs cookie

时间:2016-04-23 23:04:45

标签: angularjs node.js cookies

我正在使用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。

2 个答案:

答案 0 :(得分:1)

您可以使用快速设置Cookie中的对象,而不是使用两个不同的Cookie,在角度方面,您可以通过以下方式设置Cookie:

$cookies.getObject('cookiename',object)

在您的情况下,要么编写用于拆分cookie的函数,要么使用JSON.parse(json)来解析来自express的cookie。 我以其他方式做了它并设法通过JSON.parse(cookieobj.user_id)

读取快递中的cookie对象

答案 1 :(得分:0)

似乎从角度1.4开始,您应该使用$cookies.getObject('user_id')来反序列化值的版本。从那开始,如果不是解决方案,请在控制台上检查cookie的实际值,以尝试了解j:"571be8d34666cf69664645d5"的来源。