Сеансы Node.js Express повторно сохраняют информацию о сеансе для сохранения после удаления из хранилища. - PullRequest
0 голосов
/ 19 января 2019

Мне кажется, я просто не понимаю, как работают экспресс-сессии или, может быть, сессии вообще. Я использую 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 сеанса, но запись в БД будет удалена. Будет создан новый сеанс, и постоянная информация для входа будет потеряна. Любой совет?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...