Всем доброго!
Решил попробовать поигратся немного с авторизацией, с помощю сессий.
Столкнулся с проблемой когда заканчивается срок жизни сессии
cookie: {maxAge: new Date(Date.now() + (60 * 1000 * 1))} повторно засетить что то в
req.session не получается :(
Вот кусок моего кода:
let session = require('express-session');
app.use(session({
secret: 'aaa2C44-4D44-WppQ38Siuyiuy',
cookie: {maxAge: new Date(Date.now() + (60 * 1000 * 1))},
resave: true,
saveUninitialized: true
}));
let checkSignIn = (req, res, next) => {
if (req.session.user) { // после истичения сессии req.session.user всегда undefined,
//несмотря на то что в
//логине я повторно задаю это
// свойство req.session.user = user['_id']
next();
} else {
res.redirect("/login");
}
}
app.post("/login", (req, res) => {
if(req.body.usr == user && req.body.pwd == password)
req.session.user = user['_id']
res.redirect("/manage");
} else {
console.log('Could not find user')
res.render('login')
}
})
})
app.get("/manage", checkSignIn, (req, res) => {
res.render('index')
})
В результате первый раз логин проходит удачно, но после того как сесия истечет, повторно залогинится не удается, почему то при проверке в кастомном миделвере
checkSignIn req.session.user == undefined хотя в
"/login" это свойство задается так же как и в первый раз
req.session.user = users['_id']
Не понимаю почему так происходит. Подскажите пожалуйста как это исправить