2011-04-17 18 views
7

ile node.js içinde oturum ömrü süresi Express framework ile node.js kullanıyorum. Bir seans mağazası olarak MongoDB kullanıyorum. Oturum nesnelerini MongoDB'den kaldırıldıktan sonra yaşam süresini nasıl ayarlayabilirim. Bu benim beyanı yapıyorum nasıl:Sessiz ve MongoDB

sen gibi maxAge kullanabilirsiniz:

app.use(express.cookieParser()); 
    app.use(express.session({ 
       secret: "Stays my secret", 
       store: new MongoStore({ db: 'myDB' }) 
        })); 

cevap

7

Sorunuz biraz bulanık ama toplayabilir ne oturumu için son kullanma süresini ayarlamak için wan't dan böylece:

app.use(express.cookieParser()); 
app.use(express.session({ 
    secret : "Stays my secret", 
    maxAge : new Date(Date.now() + 3600000), //1 Hour 
    expires : new Date(Date.now() + 3600000), //1 Hour 
    store : new MongoStore({ db: 'myDB' }) 
})); 

expires değeri maxAge eski sürümler için olduğu gibi, sadece olsa expires gerektiğinde express yeni sürümleri için gereklidir.

+4

Teşekkür ederiz. Oturum her kullanıldığında maxAge için zamanlayıcı mı yoksa oturum oluşturma işleminden mi sayılır? – Thomas

+3

http://stackoverflow.com/questions/10429557/whats-the-correct-way-to-use-maxage-with-express-js adresinden yola çıkarak, Date-using ayarlarınızın "expires" anahtarını gerektirdiği anlaşılıyor. "maxAge" değil. – Aaron

+5

maxAge, bir * yaş * olmalıdır (örneğin milisaniye cinsinden bir değer), gelecekte * zaman * olmamalıdır. – UpTheCreek

0

@RobertPitt cevabınızı düzenleyin. Üstelik bu

app.use(express.session({ 
    secret : "Stays my secret", 
    cookie: { 
     maxAge : new Date(Date.now() + 3600000), //1 Hour 
     expires : new Date(Date.now() + 3600000), //1 Hour 
    }, 
    store : new MongoStore({ db: 'myDB' }) 
})); 

:

maxAge : new Date(Date.now() + 3600000), //1 Hour 

olduğunu neden olacaktır

{ 
"cookie":"originalMaxAge":null,"expires":null,"httpOnly":true,"path":"/"}, 
"your_var_1":"value 1", 
"your_var_2":"value 2", 
... 
} 

Tartışma express.session için (o belgelerde var) bu gibi görünmelidir: Kurabiye (oturum) nesne gibi görünüyor her çerez (burada da oturum) sunucu başlangıcından sonra bir saat otomatik olarak sona erecek