使用 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 包来识别您的应用程序的个人用户?