nodejs-express-req.session nicht speichern meine variable

Ich werde eine grundlegende admin-auth, wenn der Benutzer angemeldet ist, rufe ich diese Funktion in der authcallback :

function checkAdmin (req) {
  Admin.findOne( { user : req.user.id },function ( err, admin, count ){
    req.session.isAdmin = true;
    console.log("session : %j",req.session);
  })
}

Und dann Mach ich

res.redirect('/')

Den code in die index-controller :

console.log("session : %j",req.session);
  res.render('index', { title: 'Accueil',message: req.flash('info') });

Und das ist es, was ich in der Konsole :

session : {"cookie":{"originalMaxAge":null,"expires":null,"httpOnly":true,"path"
:"/"},"passport":{"user":"5079832df1e9a6485e000001"},"flash":{},"isAdmin":true}

session : {"cookie":{"originalMaxAge":null,"expires":null,"httpOnly":true,"path"
:"/"},"passport":{"user":"5079832df1e9a6485e000001"},"flash":{}}

Verstehe ich nicht, warum die Sitzung nicht speichern Sie die isAdmin-Wert.

Ich gelesen habe einige andere Fragen, die sagen, dass die app.verwenden(app.router) Ort könnte eine Ursache sein, aber ich weiß :

app.use(cookieParser)
app.use(express.session({store: session_store }));
app.use(passport.initialize())
app.use(passport.session())


//routes should be at the last
app.use(app.router)

Muss es sein, die Art von idiot, denke ich ..

  • Vielleicht so etwas wie diese können helfen: erf.Sitzung.regenerieren github.com/senchalabs/connect/issues/681
  • So würde es bedeuten, dass jedes mal, wenn ich will, ändern/fügen Sie eine variable in der session von nI verwenden müssen, req.Sitzung.regenerieren ?
  • Wahrscheinlich sollten Sie umleiten innen checkAdmin Funktion.
  • Ich Stimme zu, ich habe keine Ahnung, was regenerate tut. Die docs sagen: "die Regeneration der session einfach die Methode aufrufen, einmal komplett eine neue SID und Session-Instanz initialisiert wird an req.Sitzung." Wie unterscheidet sich dies von, sagen wir, reload?
InformationsquelleAutor Sladix | 2012-11-30
Schreibe einen Kommentar