sto impostando un'autenticazione base di amministratore, quando l'utente è connesso, chiamo questa funzione nel AuthCallback:nodejs req.session espresso non memorizzare la mia variabile
function checkAdmin (req) {
Admin.findOne({ user : req.user.id },function (err, admin, count){
req.session.isAdmin = true;
console.log("session : %j",req.session);
})
}
E poi faccio
res.redirect('/')
il codice all'interno del controller index:
console.log("session : %j",req.session);
res.render('index', { title: 'Accueil',message: req.flash('info') });
E questo è ciò che ottengo nella console:
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":{}}
Non capisco perché la sessione non memorizzi il valore isAdmin.
Ho letto alcune altre domande dicendo che la (app.router) posto app.use potrebbe essere una causa, ma lo faccio:
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)
Deve essere una specie di idiota immagino ..
Forse qualcosa di simile questo può aiutare: req.session.regenerate https : //github.com/senchalabs/connect/issues/681 – alditis
Quindi significherebbe che ogni volta che voglio cambiare/aggiungere una variabile nella sessione nI deve usare req.session.regenerate? –
Probabilmente dovresti effettuare il reindirizzamento all'interno della funzione checkAdmin. –