Ponieważ nie zdefiniowałem maxAge podczas wywoływania expressServer.use(express.session({params}))
, okres ważności pliku cookie jest ustawiony jako "Session".Zmień okres ważności plików cookie w Express
Chciałbym dodać funkcję "zapamiętaj mnie" podczas logowania. Jeśli wybrano "zapamiętaj mnie", okres wygaśnięcia zostanie przedłużony do miesiąca.
Jak miałbym to zrobić? Próbowałem po prostu rozszerzyć maxAge, ale to nic nie dało ...
expressServer.get '/blah', (request, response) =>
request.session.cookie.maxAge = 2592000
response.end 'hello there'
Dzięki za pomoc!
** EDIT **
Próbowałem podejmowania prosty serwer przetestować aktualizację plików cookie użytkownika. Używam Express, 3.0.4
Kiedy odwiedzam 127.0.0.1:9000/blah "wygasa" pole jest nadal "sesja" plik cookie w przeglądarce ...
express = require 'express'
expressServer = express()
expressServer.use express.cookieParser()
expressServer.use express.session
secret: 'supersecret'
cookie:
path: '/'
httpOnly: true
expressServer.get '/', (request, response) =>
response.end 'hello'
expressServer.get '/blah', (request, response) =>
request.session.cookie.maxAge = 3600000
response.end 'hello again'
expressServer.listen 9000
console.log 'server running'
Grrrrrrr ....
Jednak gdybym wyczyścić cookies przeglądarki i odwiedzić „/ bla”, w „wygasa” pole jest ustawione prawidłowo. Co ma sens, ponieważ ciasteczko musi być ustawione po raz pierwszy :) – user1161657
Ok ... wydaje się działać TYLKO jeśli aktualizuję sesję ... Więc właśnie dodałem 'request.session.blah = Date()' i rzeczy w magiczny sposób działają? – user1161657
Możesz spróbować [ustawić maxAge z wartością domyślną] (http://www.senchalabs.org/connect/middleware-session.html), a następnie wygasić plik cookie, jeśli pole wyboru nie jest zaznaczone (req.session.cookie .expires = false). – Frank