что было бы правильно, как управлять несколькими входами в систему с одной учетной записи пользователя в nodejs, express.js? - PullRequest
0 голосов
/ 08 апреля 2019

Я использую express-session, passport и connect-mongo для сохранения сессий в mongodb.my 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"
    },

это работает нормально и возможно несколько входов в систему с одной учетной записи пользователя, в одном и том же браузере в режиме инкогнито или с другими браузерами или другими устройствами, но я не знаю, если это правильный путьдля управления этим.Чтобы не генерировать ошибки между сеансами одного и того же пользователя и с хранилищем корзины покупок.

как стандартный способ обработки нескольких входов в систему с одной учетной записи пользователя, я имею в виду, чтобы сеансы всегда были связаныдо последних обновленных данных, а также в хранилище, чтобы не было ошибок.

1 Ответ

0 голосов
/ 08 апреля 2019

Прежде всего, вы должны понять концепцию того, как работает сессия.

Сеанс будет уникальным идентификатором, который хранится на стороне клиента (так называемый «идентификатор сеанса»).Этот идентификатор сеанса передается веб-серверу каждый раз, когда браузер делает HTTP-запрос (т. Е. Ссылку на страницу или AJAX-запрос).Веб-приложение сопоставляет идентификатор входящего сеанса с его внутренней базой данных (redis и т. Д.) И извлекает сохраненные переменные для использования запрашиваемой страницей.

Итак, если вы вошли в систему с использованием той же учетной записи в другом браузере, сохраненный сеансинформация будет уникальной (на основе идентификатора сеанса).Вам не нужно беспокоиться об этом.

...