2016-10-24 6 views
0

Когда я закрываю broswer, сеанс автоматически уничтожается. Ниже приведен код в файле app.js.Сессия автоматически уничтожается в Express JS, mongodb, Node js application

const session = require('express-session'); 
const MongoSessions = require('connect-mongo')(session); 
var mongo = require('mongodb').MongoClient; 
var db_url = 'mongodb://localhost:27017/test'; 

app.use(session({ 
secret: '007', 
resave: false, 
saveUninitialized: false, 
duration: 40*60 *1000, 
activeDuration: 10*60*1000, 
store: new MongoSessions({ 
    url: db_url 
}) 
})); 

Когда пользователь входит в систему, я сохраняю идентификатор пользователя в сеансе. Когда пользователь снова обратится к системе, он перенаправит его непосредственно на домашнюю страницу. Чтобы проверить это:

exports.indexPage = function (req, res, next) { 
if (req.session.userid == null) { 
    res.render('login'); 
} else { 
    res.render('index'); 
} 

};

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

+0

Как вы знаете, сеанс уничтожается? – Richard

+0

@ Рихард. Я редактировал свой вопрос. Любая идея, почему сеанс разрушается при закрытии браузера? – Kaishah

ответ

1

Я не уверен, что должны быть duration и activeDuration, но они недопустимы для express-session.

Поскольку вы не устанавливаете значение maxAge для файла cookie сеанса, оно автоматически ограничивается текущим сеансом браузера, а это означает, что он будет уничтожен при закрытии браузера (как вы уже заметили).

Чтобы предотвратить это, сконфигурируйте maximum age (в миллисекундах):

app.use(session({ 
    cookie : { 
    maxAge : 40 * 60 * 1000 
    }, 
    secret: '007', 
    ... 
})); 
+0

Пробовал. все еще сталкиваются с одной и той же проблемой :( – Kaishah

+0

@ Kaishah начать с проверки того, сохраняется ли файл cookie в вашем браузере (с помощью его инструментов dev). – robertklep

+0

Нет cookie удаляется .... – Kaishah

Смежные вопросы