使用 Express Cookie-Session 生成唯一的 sessionId
Generating unique sessionId with Express Cookie-Session
我在我的应用程序中使用 node/express.js 和 cookie-session,并试图了解为每个会话创建唯一 ID 的正确方法。
目前,当用户登录时,cookie 会与一个值一起存储在他们的浏览器中,例如:session: ABC123
。如果用户注销,cookie 将被删除。当用户重新登录时,相同的 cookie 和值存储在浏览器中 session: ABC123
.
理想情况下,我想随机化会话值,这样我就可以计算该用户创建的唯一会话数。我想知道是否有办法在每次登录时随机化 cookie-session 值——或者,我是否应该为此创建一个单独的 cookie 来存储随机值?
谢谢!
生成唯一标识符?这听起来像是一个通用唯一标识符——UUID 的工作!有一个名为 uuid
的可爱的小 Node.js 包可以为您处理它们背后的逻辑。以下是您可以如何使用它在 ExpressJS 应用程序中设置唯一的 cookie:
const express = require('express');
const uuid = require('uuid/v4');
const app = express();
app.get('/', (req, res) => {
if (req.cookie.id) {
return res.end(`Welcome back, ${req.cookie.id}!`);
}
const id = uuid();
res.cookie('id', id, { httpOnly: true });
res.end(`Welcome, ${id}!`);
});
app.listen(3000);
您的具体用法可能会有所不同,因为您只需要在有人登录时生成一个新的 UUID,但原理是相同的。
P.S。 - 您是否考虑过 express-session
包来识别您的应用程序的个人用户?
我在我的应用程序中使用 node/express.js 和 cookie-session,并试图了解为每个会话创建唯一 ID 的正确方法。
目前,当用户登录时,cookie 会与一个值一起存储在他们的浏览器中,例如:session: ABC123
。如果用户注销,cookie 将被删除。当用户重新登录时,相同的 cookie 和值存储在浏览器中 session: ABC123
.
理想情况下,我想随机化会话值,这样我就可以计算该用户创建的唯一会话数。我想知道是否有办法在每次登录时随机化 cookie-session 值——或者,我是否应该为此创建一个单独的 cookie 来存储随机值?
谢谢!
生成唯一标识符?这听起来像是一个通用唯一标识符——UUID 的工作!有一个名为 uuid
的可爱的小 Node.js 包可以为您处理它们背后的逻辑。以下是您可以如何使用它在 ExpressJS 应用程序中设置唯一的 cookie:
const express = require('express');
const uuid = require('uuid/v4');
const app = express();
app.get('/', (req, res) => {
if (req.cookie.id) {
return res.end(`Welcome back, ${req.cookie.id}!`);
}
const id = uuid();
res.cookie('id', id, { httpOnly: true });
res.end(`Welcome, ${id}!`);
});
app.listen(3000);
您的具体用法可能会有所不同,因为您只需要在有人登录时生成一个新的 UUID,但原理是相同的。
P.S。 - 您是否考虑过 express-session
包来识别您的应用程序的个人用户?