在 Cookie 中存储 Express 会话

Posted

技术标签:

【中文标题】在 Cookie 中存储 Express 会话【英文标题】:Store Express Session in Cookie 【发布时间】:2015-11-10 06:06:25 【问题描述】:

我找到了多种方法来将会话 ID 存储在 expressjs 的 cookie 中。我真正想要的是将所有会话数据存储在 cookie 中,而不必担心服务器端会话存储。

为什么?我的会话数据很小,在我的情况下,拥有会话存储会增加不必要的复杂性。

这可以用快递完成吗?如果您知道如何加密,则可以加分。

【问题讨论】:

喜欢这个? github.com/expressjs/cookie-session 是的,我想是的。我看到了这个,但是文档有点混乱。我试试看。 是的,这就是我要找的。谢谢! 【参考方案1】:

Express cookie-session 应该做你想做的事。

var cookieSession = require('cookie-session');
var express = require('express');
var app = express();

app.use(cookieSession(
  secret: 'secret-key-you-don\'t-tell-the-client',
  signed: true,
));

结合使用 secret 键并确保您的 cookie 为 signed 将防止最终用户篡改任何 cookie。

设置完成后,您可以使用控制器中的req.session 对象或使用兼容的身份验证模块(例如Passport)访问会话。

【讨论】:

以上是关于在 Cookie 中存储 Express 会话的主要内容,如果未能解决你的问题,请参考以下文章

Express 会话和 PassportJS 之间的区别

React 前端 + Express.js 会话

在 connect/express 中使用 cookieSession() 时为会话设置单独的 maxAge

在带有 express-session 的 NodeJS 中使用安全 cookie 时会话不持久

避免存储用于访问公共页面的 cookie

Node.js/Express.js 会话管理 cookie 为会话 cookie