2012-05-03 33 views
16

Widziałem kilka odmian. Załóżmy, że chciałbym, aby mój plik cookie wygasł po jednej sekundzie. Należy używaćJaki jest poprawny sposób używania maxAge z Express.js?

app.use(express.session({ secret: 'mysecret', maxAge: new Date(Date.now() + 1000)})); 

lub

app.use(express.session({ secret: 'mysecret', maxAge: 1000})); 

lub

app.use(express.session({ secret: 'mysecret', cookie: {maxAge: new Date(Date.now() + 1000)}})); 

lub

app.use(express.session({ secret: 'mysecret', cookie: {maxAge: 1000}})); 

przypuszczać Również mam ustawić moje ciasteczko upływającym poprawnie i że upłynął. Jeśli użytkownik nie zrestartuje przeglądarki, czy nadal będą przechowywać informacje o plikach cookie, dopóki tego nie zrobią?

Odpowiedz

21

Myślę, że lepiej będzie patrzeć bezpośrednio na źródło.

wyraźnego używa połączyć middleware, a oto kod dla sesji https://github.com/senchalabs/connect/blob/master/lib/middleware/session.js#L67

I tam więcej dokumentacji na connect miejscu http://www.senchalabs.org/connect/session.html

Więc można zrobić

app.use(express.session({ secret: 'mysecret', cookie: {expires: new Date(Date.now() + 1000)}})); 

lub

app.use(express.session({ secret: 'mysecret', cookie: {maxAge: 1000}})); 
+4

Myślę, że w irst method sposób, w jaki używasz opcji "wygasa" nie jest poprawny! ponieważ konfiguracja oprogramowania pośredniego zostanie oceniona tylko jeden raz, a wszyscy użytkownicy będą mieli tę samą datę wygaśnięcia. –

+0

Zmieniono [link do kodu źródłowego] (https://github.com/expressjs/session/blob/8e57b21bef0d53010c4d37f4beee3f0341f3eaa6/session/cookie.js). –

Powiązane problemy