【问题标题】:How to handle unique session(One user session)using Node.js express session?如何使用 Node.js 快速会话处理唯一会话(一个用户会话)?
【发布时间】:2020-05-07 13:20:44
【问题描述】:

我需要您的帮助来解决以下查询

如何防止用户同时从两个不同的浏览器登录系统?

假设用户已登录 Firefox,如果同一用户再次从同一台或不同计算机上的其他浏览器(如 Chrome)登录,则应销毁 Firefox 上的会话,并且用户应在 Chrome 中保持活动状态。

我在 Node.js 中使用快速会话

我需要某种数据库来存储会话还是可以单独使用快速会话来实现?

焦急等待您的建议

【问题讨论】:

  • 任何人都可以在这个查询中有所启发

标签: node.js express session


【解决方案1】:

@Gurpinder 你必须为此使用数据库。确保您有一个唯一定义用户的唯一元素。对于该特定用户,将 sessionId 映射到 DB 中的唯一 ID 中。

一旦使用相同的唯一 ID,就会发出另一个登录请求。销毁前一个会话并保存新的会话。

假设我们有一个名为 Session 的表/集合,一旦登录完成,请执行以下操作。

Session.find({ 
            userId : userData.userId
        }).remove(function (error, result) {
            if (error) {
                logger.error(error);
                callback(null);
            }
            else{
                that.storeSession(userData, callback);
            }
        });

第 1 步:查找会话是否已存在

第 2 步:如果存在则删除

第 3 步:创建一个新会话。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-28
    • 2021-03-19
    • 2021-09-23
    • 2014-02-21
    • 2018-02-12
    • 1970-01-01
    • 2021-12-16
    相关资源
    最近更新 更多