2015-09-26 2 views
1

Я использую экспресс-сессию для управления сессиями. Я использую это:Express JS - Время истечения срока действия cookie

app.use(session({secret: 'secret', 
        resave: false, 
        saveUninitialized: false, 
        cookie: { maxAge: 6*1000 
          } 
        }) 
      ); 

Теперь я хочу сбросить значение срока действия до 6 каждый раз, когда мой url попадает. Так что я делаю это:

req.session.cookie.maxAge = 6000 

Но максимальный возраст не сбрасывается, а сессия истекает через 6 секунд всегда, даже если URL поражен. Как мне это изменить до 6000 каждый раз?

Спасибо за помощь заранее

+1

Try req.session.cookie.expires = новая дата (Date.now() + 6000); Однако я этого не пробовал. – Molda

+0

Нет, не работает ... – Srikrishnan

+0

Ну, это странно, я только что попробовал и работает, как и ожидалось. Значение cookie cookie обновляется при обновлении каждой страницы. – Molda

ответ

2

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

app.use(function(req,res,next){ 
    req.session._garbage = Date(); 
    req.session.touch(); 
    next() 
}) 

Я ставлю этот код в app.js и отлично работает для меня

Это моя сессия код:

app.use(session({ 
    cookie: { 
    maxAge: 14400000 
    }, 
    saveUninitialized: true, 
    resave: true, 
    secret: config.sessionSecret, 
    store: new RedisStore({ 
    port: 6379 
    }) 
})); 
+0

Спасибо, что решил мою проблему, что такое 'req.session._garbage' кстати? –

0

Пожалуйста, проверьте этот пример может быть полезным вам

Обновить код, как этот

req.session._garbage = Date(); 
req.session.touch(); 
req.session.cookie.expires = 2592000000; // 30*24*60*60*1000 Rememeber 'me' for 30 days 

Для справки, пожалуйста, проверьте примеры сильфонные

app.use(session({ 
    secret: 'iloveyoudear...', 
    resave: true, 
    saveUninitialized: true, 
    cookie: {expires: 30*24*60*60*1000 } 
})); 

ИЛИ

app.use(session({ 
    secret: 'iloveyoudear...', 
    resave: true, 
    saveUninitialized: true, 
    cookie: {maxAge: 30*24*60*60*1000 } 
})); 

Выше два примера не работает, пожалуйста, устанавливается индивидуально, как это в маршрутизаторе

req.session.cookie.maxAge = 2592000000; // 30*24*60*60*1000 Rememeber 'me' for 30 days 

Это один также не работает, пожалуйста, проверьте

экспресс-сессии и куки-парсер версии НПМ и установить последнюю версию

Все примеры, которые работают для меня, смотри один снимок моментального снимка.

enter image description here

Смежные вопросы