首页 > 解决方案 > NodeJS express-session如何将数据存储在cookie中

问题描述

除了会话 ID 之外,是否可以使用 express-session 在 cookie 中存储其他数据?

我正在考虑使用该express-session模块在 Redis 中存储会话数据。该模块似乎具有会话管理所需的许多有用功能,例如创建 cookie 和管理 Redis 存储中的会话。不必重新实现该功能将非常有帮助。

但是,只有会话 ID 存储在创建的 cookie 中。最小化 cookie 的大小是有意义的,但在此应用程序的架构中,生成的 cookie 必须包含 JWT。JWT 需要存储在 cookie 中,因为它将用于访问作为更大系统的一部分的其他 API。

https://expressjs.com/en/resources/middleware/session.html

“注意会话数据不保存在 cookie 本身中,只是会话 ID。会话数据存储在服务器端。”

是否可以将 jwt 存储在 cookie 中?或者,我是否需要从头开始编写自定义方法来管理会话,而不是使用 express-session 模块?

这是文档中的示例代码...是否可以向 cookie 添加其他数据?

app.use(session({
  secret: 'keyboard cat',
  resave: false,
  saveUninitialized: true,
  cookie: { secure: true }
}))

标签: node.jssessioncookiesredisjwt

解决方案


推荐阅读