Как правильно работать с сессиями в node+express?

143
01 февраля 2018, 19:42

Всем доброго! Решил попробовать поигратся немного с авторизацией, с помощю сессий. Столкнулся с проблемой когда заканчивается срок жизни сессии 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 = user['_id']

Не понимаю почему так происходит. Подскажите пожалуйста как это исправить

Answer 1

Попробуйте после req.session.user = user['_id'] вызвать req.session.save()

READ ALSO
Не получается реализовать waypoints в google map api

Не получается реализовать waypoints в google map api

Есть задача построить два маршрута от начальной точки до конечной, через промежуточныеПоскольку в JS я полный ноль, начал искать готовые решения

175
Как подключить боту Telegram статистику?

Как подключить боту Telegram статистику?

Помогите пожалуйста подключить к PHP боту Telegram статистику его использования, с помощью Botanio Ничего не получается

271
Как реализовать диалог с ботом вк PHP

Как реализовать диалог с ботом вк PHP

ЗдравствуйтеУчусь создавать ботов в вк посредством php

277
Конвертация Excel (xlsx, xls) в PDF с помощью PHP

Конвертация Excel (xlsx, xls) в PDF с помощью PHP

Требуется после загрузки XLSX или XLS документа на сервер, сразу конвертировать его в PDF и отдавать клиенту

265