如何从nodejs,express.js中的一个用户帐户管理多个登录的正确方法是什么?

问题描述 投票:0回答:1

我在mongodb中使用快速会话,护照和connect-mongo进行保存会话。我的package.json

 "dependencies": {        
        "axios": "^0.18.0",
        "bcrypt": "^3.0.5",
        "body-parser": "^1.18.3",
        "bootstrap": "^4.3.1",
        "chalk": "^2.4.2",
        "chart.js": "^2.8.0",
        "cheerio": "^1.0.0-rc.2",
        "clockwork": "^0.1.4",
        "compression": "^1.7.4",
        "connect-mongo": "^2.0.3",
        "dotenv": "^7.0.0",
        "errorhandler": "^1.5.0",
        "express": "^4.16.4",
        "express-flash": "^0.0.2",
        "express-handlebars": "^3.0.2",
        "express-session": "^1.15.6",
        "express-session-passport-cleanup": "^1.0.3",
        "express-status-monitor": "^1.2.3",
        "express-validator": "^5.3.1",          
        "lastfm": "^0.9.3",
        "lob": "^6.0.5",
        "lodash": "^4.17.11",
        "lusca": "^1.6.1",
        "mongoose": "^5.4.20",
        "morgan": "^1.9.1",
        "multer": "^1.4.1",
        "node-linkedin": "^0.5.6",
        "node-sass": "^4.11.0",
        "node-sass-middleware": "^0.11.0",
        "nodemailer": "^6.0.0",
        "passport": "^0.4.0", 
        "passport-local": "^1.0.0",   
        "pug": "^2.0.3",
        "request": "^2.88.0",
        "stripe": "^6.28.0",           
        "uuid": "^3.3.2",
        "validator": "^10.11.0"
    },

这工作正常,可以从同一个用户帐户,在隐身或其他浏览器或不同设备的同一浏览器中进行多次登录,但我不知道管理这个的正确方法是什么。我不会在同一用户的会话和购物车存储之间产生错误。

如何从一个用户帐户处理多个登录的标准管理方式,我的意思是在会话上始终链接到上次更新的数据以及商店,这样就不会发生错误。

node.js express passport.js express-session connect-mongo
1个回答
0
投票

首先,您必须了解会话如何工作的概念。

会话将是一个存储在客户端的唯一标识符(称为“会话ID”)。每次浏览器发出HTTP请求(即页面链接或AJAX请求)时,此会话ID都会传递给Web服务器。 Web应用程序将传入的会话ID与内部数据库(redis等)进行匹配,并检索存储的变量以供请求的页面使用。

因此,如果您使用相同的帐户登录到不同的浏览器,则存储的会话信息将是唯一的(基于会话ID)。你不必担心它。

© www.soinside.com 2019 - 2024. All rights reserved.