如何使会话对每个用户都是唯一的?-Node.js

如何使会话对每个用户都是唯一的?-Node.js,node.js,session,unique,sessionid,Node.js,Session,Unique,Sessionid,我目前正在处理一个节点项目,我的问题是,如果我在一台计算机上登录该网站,而我在另一台计算机上也这样做,我仍将登录该帐户。我认为这与使会话具有唯一性有关。以下是我在会话中使用的中间件: app.use(session({ secret:"HelloWorld" })); 如果有人想在此处查看节点文件,请执行以下操作: 任何帮助都将不胜感激 您是否尝试过使用genid方法 app.use(session({ genid: function(req) { return uuid();

我目前正在处理一个节点项目,我的问题是,如果我在一台计算机上登录该网站,而我在另一台计算机上也这样做,我仍将登录该帐户。我认为这与使会话具有唯一性有关。以下是我在会话中使用的中间件:

app.use(session({
    secret:"HelloWorld"
}));
如果有人想在此处查看节点文件,请执行以下操作:


任何帮助都将不胜感激

您是否尝试过使用
genid
方法

app.use(session({
    genid: function(req) { return uuid(); },
    secret:"HelloWorld"
}));
您已经导入了
uuid
。它应该会起作用

注意:要小心生成唯一的ID,这样会话就不会冲突


更多信息请参见:

您似乎尚未指定express session应将会话数据存储在何处。警告:“默认服务器端会话存储,
MemoryStore
,不是专门为生产环境设计的。它在大多数情况下都会泄漏内存,不会扩展到单个进程,并且用于调试和开发。”

我不知道他们为什么没有给出在文档中正确指定的示例,但正确的方法应该与我得到的类似:

import express from 'express';
import session from 'express-session';
import connectMongo from 'connect-mongo';
import mongoose from 'mongoose';

const app = express();
... // configure mongoose db and connect

const MongoStore = connectMongo(session);

const month = 1000 * 60 * 60 * 24 * 30; // ms * s * min * h * days
var sess = {
    secret: 'session-secret',
    resave: false, // don't save session if unmodified
    saveUninitialized: false, // don't create session until something stored
    cookie: { maxAge: month }, // do not allows js on client to touch cookies
    store: new MongoStore({ mongooseConnection: mongoose.connection })
};
app.use(session(sess));

注意行
store:newmongostore(…)
,这就是指定store的方式。我使用了商店的package,这取决于mongoose,但我看到您使用的是monk,我不认为它列为现有商店,因此您可能需要创建自己的商店或使用mongoose。在结尾处给出了现有门店的完整列表。

不起作用,我将该网站上载到dynamiccomps.herokuapp.com,用户仍在登录。