Я работаю над расширением Google Chrome с всплывающим окном, в котором я загружаю страницу с сервера node.js + express.js.Страница, которую я загружаю, изменяется в зависимости от статуса req.session.user
следующим образом:
app.get('/', function(req, res){
if(req.session.user){
res.render(__dirname + '/pages/base.jade', {});
}
else{
res.render(__dirname + '/pages/login_register.jade', {});
}
});
Если req.session.user
имеет значение null, я отправляю страницу, на которой пользователь может выполнить вход или зарегистрироваться.Если он / она выполняет вход в систему, это происходит на сервере:
app.post('/login', function(req, res){
var user = {};
user.username = req.body.username;
user.password = req.body.password;
checkLogin(user, function(foundUser){
//login correct
console.log("login!");
req.session.user = foundUser;
res.render(__dirname + '/pages/base.jade', {
});
});
});
Поэтому, если пользователь входит в систему правильно, req.session.user
должны быть установлены с учетными данными текущего пользователя.Проблема заключается в том, что после входа в систему, а затем закрытия всплывающего окна расширения Chrome, всякий раз, когда я снова открываю его, я все равно получаю страницу входа.
Мой вопрос: поддерживает ли всплывающее окно хранение сессии в express.js?сервер?Если да, то с моим кодом что-то не так, может кто-нибудь указать, что я делаю не так?Спасибо.
РЕДАКТИРОВАТЬ:
Вот как я настраиваю сервер:
var app = express.createServer(
express.logger(),
express.cookieParser(),
express.session({ secret: 'keyboard cat' })
);
app.use(express.cookieParser());
app.use(express.session({ secret: "keyboard cat" }));
app.set('view engine', 'ejs');
app.set("view options", { layout: true });
Я мог бы делать что-то избыточное здесь, так как у меня все еще нет глубокогопонимание того, как это работает.