繁体   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