Мне кажется, я просто не понимаю, как работают экспресс-сессии или, может быть, сессии вообще. Я использую Express MySQL Express для магазина с базовой настройкой для обоих:
app.use(session({
key:config.dev.sessionOpts.key,
secret:config.dev.sessionOpts.secret,
store:sessionStore,
resave:true,
saveUninitialized:true,
cookie: {
sameSite:'strict',
path:'/',
maxAge: null,
httpOnly:true,
secure:false
}
}));
И магазин MySQL:
'mysqlStore': {
host:'localhost',
user:'users',
password:'',
database:'testDB',
clearExpired:true,
checkExpirationInterval:900000
}
Сеансы хранятся в таблице сессий, они сохраняются при использовании сайта. Если я удаляю запись из БД, я все равно вижу cookie в консоли браузера, и файл cookie отправляется при следующем запросе. Что я не понимаю, так это то, что новый сеанс создается и вводится в БД. Как я могу вернуться к этому сеансу из файла cookie и снова вставить его в БД?
Причиной этого вопроса является следующий сценарий. В столбце «Истекает» БД в БД устанавливается +1 день. Когда пользователь входит в систему, я хочу продлить этот сеанс на 30 дней. Если пользователь не посещает сайт более 1 дня, не закрывает браузер, он вернется со старым файлом cookie сеанса, но запись в БД будет удалена. Будет создан новый сеанс, и постоянная информация для входа будет потеряна. Любой совет?