Оставайтесь с подпиской в ​​режиме cookie-сессии в экспресс

Я хотел бы иметь опцию "Оставаться в системе", такую ​​как Gmail. Таким образом, пользователь может решить, если они хотят, чтобы сеанс был открыт после открытия нового сеанса браузера после его закрытия.

Изучая проблемы github, которые я видел компонент cookie-session не предоставляет способ обновить свойство maxAge dynamilly.

Мне интересно тогда, если вообще есть способ достичь функции "Оставаться в системе" с компонентом cookie-session.

Мне кажется, что базовая функция для компонента, который загружается 80K раз в месяц.

Ответы

Ответ 1

// This allows you to set req.session.maxAge to let certain sessions 
// have a different value than the default. 
app.use(function (req, res, next) {
  // here you can see whether they checked the checkbox or not, and change maxAge.
  // the default should be that it expires when the browser is closed
  req.sessionOptions.maxAge = req.session.maxAge || req.sessionOptions.maxAge

  // or you can try to set expires to 1 day from now:
  req.sessionOptions.expires = new Date(Date.now()+86400000)
  // or at the end of the session:
  req.sessionOptions.expires = 0
})

Ответ 2

Если вы используете ExpressJS, у модуля сеанса есть опция.

https://github.com/expressjs/session

В качестве альтернативы req.session.cookie.maxAge вернет оставшееся время в миллисекундах, которые мы также можем переназначить новое значение для .expires соответствующим образом. Ниже, в основном, эквивалентно