【问题标题】:Generating unique sessionId with Express Cookie-Session使用 Express Cookie-Session 生成唯一的 sessionId
【发布时间】:2019-05-01 21:58:47
【问题描述】:

我在我的应用程序中使用带有 cookie-session 的 node/express.js,并试图了解为每个会话创建唯一 ID 的正确方法。

目前,当用户登录时,cookie 会在其浏览器中存储一个值,例如:session: ABC123。如果用户注销,则删除 cookie。当用户重新登录时,相同的cookie和值会存储在浏览器session: ABC123中。

理想情况下,我想随机化会话值,以便计算此用户创建的唯一会话数。我想知道是否有办法在每次登录时随机化 cookie-session 值——或者,我是否应该为此创建一个单独的 cookie 来存储随机值?

谢谢!

【问题讨论】:

    标签: node.js express cookie-session


    【解决方案1】:

    生成唯一标识符?这听起来像是通用唯一标识符的工作——UUID!有一个可爱的 Node.js 小包,名为 uuid,它可以为您处理它们背后的逻辑。以下是您可以使用它在 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,但原理是一样的。

    附: - 您是否考虑过使用express-session 包来识别您的应用程序的个人用户?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-18
      • 1970-01-01
      • 1970-01-01
      • 2021-04-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多