问题描述
我有两个节点应用程序项目,其中一个用于登录身份验证服务器(server_app.js),另一个用于仪表板节点项目(app_dashboard.js)。我将会话存储在名为 session 的 mongodb 存储集合中。
server_app.js
const mongoDbStore = require('connect-mongodb-session')(session);
const uuidv4 = require('uuid').v4;
const store = new mongoDbStore({
uri: MONGODB_URI,collection: 'sessions'
});
app.use(session({
secret: uuidv4(),cookie: {
path: '/',domain: 'localhost',},store: store,name: 'sid',}))
现在我在成功登录 cookie 后将 session_id 转发到另一个应用程序,我想在 app_dashboard.js 的会话中引用同一个 MongoDB 存储,我如何使它工作以引用 server_app.js 中使用的同一个 mongo 存储验证我的会话?
app_dashboard.js
app.use(session({
secret: uuidv4(),resave: false,saveUninitialized: false,// name: 'sessionid',// store: store
}))
解决方法
对 store
和 session
使用相同的选项。您需要为两者使用相同的 secret
,因此请为其生成一个加密安全的随机字符串,并通过环境变量 (process.env
) 将其传递给两者。