2012-04-13 9 views
3

Ich benutze Express mit Nodejs und Sitzungen nicht in Firefox stecken. Die Arbeit in Chrome aber gut.Node.js expressjs Sitzungen stecken nicht in Firefox

Ich habe meine MaxAge zu 14400000, die ich gelesen habe, könnte ein Problem sein, da mein lokaler Computer auf GMT ist, aber es scheint immer noch nicht zu bleiben.

Dies ist, was ich konfiguriert haben:

app.use(express.cookieParser()); 
    app.use(express.session({ secret: 'mysecret', store: new RedisStore, cookie: { maxAge: 14400000 }})); 

Ich bin es einfach einstellen, indem Sie:

req.session.user = 'something' 

Irgendwelche Ideen, was das sein könnte?

Vielen Dank!

+0

Wenn Sie die db abfragen, vermute ich, dass es die Sitzungen enthält. – mihai

+0

Dave das gleiche Problem entsteht mit mir der Firefox-Browser wird unendlich geladen, wenn express.session mit Mozilla verwendet wird, während Chrom funktioniert gut .. haben Sie eine Referenz gefunden? ... – Zeeshan

Antwort

1

Versuchen Sie, req.session. regenerate(callback) zu verwenden, wenn Sie die Sitzung zum ersten Mal einrichten. Es würde ungefähr so ​​aussehen:

app.use(express.cookieParser()); 
app.use(express.session({ secret: 'mysecret', store: new RedisStore, cookie: { maxAge: 14400000 }})); 

var user = //Define your user 

req.session.regenerate(function() { 
    req.session.user = user; 
    res.redirect('/loggedin'); 
}); 

Probieren Sie es aus!

+0

Dies wird dazu führen, dass die Sitzung für jede Seitenansicht neu erstellt wird. Ich denke, dies könnte eher eine Umgehungslösung als eine Lösung sein. Werde mich noch mehr suchen. –

+0

Definitiv ein Workaround, lassen Sie mich wissen, wenn Sie eine bessere Lösung finden. (Ich bin mir ehrlich gesagt nicht sicher, ob dieses Problem überhaupt existiert). – VedTopkar

+0

Ich habe das vergessen. Ut oh ... nur überprüft und es ist nicht in meinem Code, so muss es sich selbst mit einem 'npm update express 'oder etwas sortiert haben. –