Код в app.js
var cookieParser = require("cookie-parser")
var session = require("express-session")
app.use(cookieParser())
app.set('trust proxy', 1)
app.use(session(
{
"name": '***',
"secret": '***',
"cookie": {
"maxAge": null,
"expires": null,
"httpOnly": true,
"secure": true
},
"rolling": false,
"saveUninitialized": false,
"resave": false,
}))
При входе в систему эта конечная точка получает удар
req.session.username = email // defaults to putting something in cookie
req.session.cookie.maxAge = 1000 * 5
req.session.touch()
Тест: поиск времени, оставшегося для файла cookie / сеанса
router.get('/refresh-session', function(req, res){
if (req.session){
console.log(req.session.username)
console.log(req.session.cookie.maxAge)
}
})
Моя цель - показать пользователю всплывающее окно с уведомлением о том, что его сеанс истекает.Я буду обновлять maxAge каждый раз, когда они переходят на новую страницу ... Однако перед этим мне нужно выяснить, каков текущий текущий maxAge.Это, кажется, обновляет максимальный возраст файла cookie.Но это обновление maxAge фактически не влияет на время истечения.
Например: если для maxAge установлено значение 5 секунд (в целях тестирования), то вызов метода для проверки maxAge будет постоянно находиться в пределах 4800-5000 миллисекунд.Однако через 5 секунд - независимо от того, сколько раз я обновляюсь - срок действия файла cookie истекает через 5 секунд (что и предполагалось).
Дело в том, почему id maxAge сбрасывается?
Я осмотрелся и нашел несколько бесполезных мерзавцев.Здесь: https://github.com/expressjs/session/issues/189#issuecomment-182631933 - не работает https://github.com/expressjs/session/issues/2 - очень бесполезно
Кто-нибудь сталкивался с этой проблемой или может предложить альтернативы?