Экспресс-сессия создает новый сеанс (новый sessionID) для нового запроса. И это случается с перерывами, например, иногда для первых 3-4 ударов он будет работать нормально и будет продолжать использовать тот же существующий сеанс, а с 4-го удара он создаст новый, Иногда он создаст новый сеанс по самому первому запросу.Экспресс, создающий новый сеанс для каждого запроса
Кроме того, эта проблема возникает на моем размещенном веб-сайте. Он отлично работает на локальном хосте.
Вещи, которые я уже пробовали и не работают ..
- Экспресс сеанс создается после статических маршрутов файлов.
- Секрет секретной сессии и cookie Секретные настройки установлены одинаково.
- Использование
app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
для favicon. - Установка очень высокого значения для поля максимального возраста при создании файла cookie.
Ниже мой app.js фрагмент -
var passport = require('passport');
var expressSession = require('express-session');
var app = express();
app.engine('hbs', hbs.express4({
partialsDir: __dirname + '/views/partials'
}));
app.set('view engine', 'hbs');
app.set('views', path.join(__dirname, 'views'));
app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(express.static(path.join(__dirname, 'public')));
var flash = require('connect-flash');
app.use(flash());
var initPassport = require('./passport/init');
initPassport(passport);
//app.use(bodyParser.urlencoded());
app.use(cookieParser('mysecret'));
app.use(expressSession({ secret: 'mysecret', name:'user', cookie: {maxAge: 60000000}}));
app.use(passport.initialize());
app.use(passport.session());
Любой вид помощи будет весьма признателен. Благодарю.
Да, я заменил код на MongoStore, и все работает. Но я все еще не могу понять, что вызвало проблему с хранилищем памяти OOTB. Может быть, потому, что мой сервер хостинга не поддерживает сеанс в памяти, или это может быть проблемой в самом экспресс-сеансе при использовании с хранилищем памяти. Его так сложно тратить время на старый код, когда новый работает :) –