Проблема с несколькими пользовательскими сеансами в экспресс-сеансе. ⇐ Javascript
Проблема с несколькими пользовательскими сеансами в экспресс-сеансе.
У меня возникла проблема в течение нескольких дней, и я не мог найти решение, я искал форумы, документацию и ничего. У меня есть веб-сайт, разработанный на nodejs, с использованием экспресс-сессии и паспорта для управления сеансами и аутентификации пользователей.< /п> Моя проблема заключается в том, что когда к моему веб-сайту подключаются два разных пользователя и одновременно выполняют действие, веб-сайт загружается, но с сеансом последнего пользователя, выполнившего это действие. Другими словами, он использует сеанс для остальных пользователей, выполнивших действие одновременно.
Это базовая конфигурация моего сайта
const express = require('express'); const Морган = требуется ('Морган'); константный путь = требуется ('путь'); const exphbs = require('экспресс-руль'); const session = require('экспресс-сессия'); const validator = require('экспресс-валидатор'); const паспорт = require('паспорт'); const flash = require('connect-flash'); const MySQLStore = require('express-mysql-session')(session); const bodyParser = require('body-parser'); var cookieParser = require('cookie-parser'); const шлем = require("шлем"); const {база данных} = require('./keys'); // Инициализации константное приложение = экспресс(); require('./lib/passport'); // Настройки app.set('порт',process.env.PORT || 4000); app.set('views', path.join(__dirname, 'views')); app.engine('.hbs', exphbs({ defaultLayout: 'основной', LayoutsDir: path.join(app.get('views'), 'layouts'), partsDir: path.join(app.get('views'), 'partials'), добавочное имя: '.hbs', помощники: require('./lib/handlebars') })) app.set('движок просмотра', '.hbs'); // Промежуточное ПО app.use(morgan('dev')); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({extended: false})); app.use(cookieParser()); app.use(сессия({ секрет: '1234567789', ключ: "namecookie", пересохранить: правда, saveUninitialized: правда, магазин: новый MySQLStore (база данных), печенье: { безопасный: ложный, МаксВозраст: 150000, httpOnly: ложь } })); app.use(function (req, res, next) { res.locals.session = req.session; следующий(); }); app.use(вспышка()); app.use(passport.initialize()); app.use(passport.session()); app.use(валидатор()); // Глобальные переменные app.use((req, res, next) => { app.locals.message = req.flash('сообщение'); app.locals.success = req.flash('успех'); app.locals.user = req.user; следующий(); }); // Маршруты app.use(require('./routes/index')); app.use(require('./routes/authentication')); app.use('/links', require('./routes/links')); // Публичный app.use(express.static(path.join(__dirname, 'public'))); app.use(шлем()); // Начало app.listen(app.get('port'), () => { console.log('Сервер находится в порту', app.get('порт')); });
У меня возникла проблема в течение нескольких дней, и я не мог найти решение, я искал форумы, документацию и ничего. У меня есть веб-сайт, разработанный на nodejs, с использованием экспресс-сессии и паспорта для управления сеансами и аутентификации пользователей.< /п> Моя проблема заключается в том, что когда к моему веб-сайту подключаются два разных пользователя и одновременно выполняют действие, веб-сайт загружается, но с сеансом последнего пользователя, выполнившего это действие. Другими словами, он использует сеанс для остальных пользователей, выполнивших действие одновременно.
Это базовая конфигурация моего сайта
const express = require('express'); const Морган = требуется ('Морган'); константный путь = требуется ('путь'); const exphbs = require('экспресс-руль'); const session = require('экспресс-сессия'); const validator = require('экспресс-валидатор'); const паспорт = require('паспорт'); const flash = require('connect-flash'); const MySQLStore = require('express-mysql-session')(session); const bodyParser = require('body-parser'); var cookieParser = require('cookie-parser'); const шлем = require("шлем"); const {база данных} = require('./keys'); // Инициализации константное приложение = экспресс(); require('./lib/passport'); // Настройки app.set('порт',process.env.PORT || 4000); app.set('views', path.join(__dirname, 'views')); app.engine('.hbs', exphbs({ defaultLayout: 'основной', LayoutsDir: path.join(app.get('views'), 'layouts'), partsDir: path.join(app.get('views'), 'partials'), добавочное имя: '.hbs', помощники: require('./lib/handlebars') })) app.set('движок просмотра', '.hbs'); // Промежуточное ПО app.use(morgan('dev')); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({extended: false})); app.use(cookieParser()); app.use(сессия({ секрет: '1234567789', ключ: "namecookie", пересохранить: правда, saveUninitialized: правда, магазин: новый MySQLStore (база данных), печенье: { безопасный: ложный, МаксВозраст: 150000, httpOnly: ложь } })); app.use(function (req, res, next) { res.locals.session = req.session; следующий(); }); app.use(вспышка()); app.use(passport.initialize()); app.use(passport.session()); app.use(валидатор()); // Глобальные переменные app.use((req, res, next) => { app.locals.message = req.flash('сообщение'); app.locals.success = req.flash('успех'); app.locals.user = req.user; следующий(); }); // Маршруты app.use(require('./routes/index')); app.use(require('./routes/authentication')); app.use('/links', require('./routes/links')); // Публичный app.use(express.static(path.join(__dirname, 'public'))); app.use(шлем()); // Начало app.listen(app.get('port'), () => { console.log('Сервер находится в порту', app.get('порт')); });
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение