首页 > 解决方案 > 每个域的唯一会话 - NodeJS - Express 会话

问题描述

我遇到了一个问题,我有 2 个前端应用程序在 2 个不同的域上运行:localhost:3000localhost:3001. 它们都在与运行在localhost:4000. 我在快速会话中遇到的问题是,当我连接localhost:3000到任何路由并向来自 的任何路由发出请求时localhost:3001,浏览器正在使用 中设置的 cookie localhost:3000

这是我的会话配置:

const sessionConfig = {
  store: new MongoStore({
    mongooseConnection: mongoose.connection,
  }),
  cookie: {
    maxAge: THIRTY_MINUTES,
  },
  resave: true,
  rolling: true, // Allows to refresh cookie's max age on every request.
  saveUninitialized: true,
  secret: process.env.SESSION_SECRET, // this is a random key
};

当用户进行身份验证时,我尝试修改路径/cookie名称,localhost:3000但它似乎不起作用。

我可以向会话添加其他信息并创建一个中间件来验证用户来自哪里,但这是正常行为吗?

标签: javascriptnode.jsexpresscookiesexpress-session

解决方案


推荐阅读