2016-05-22 17 views
0

Das Problem ist, dass wenn ich mich mit 2 Benutzern anmelde, der zweite Benutzer den ersten Benutzer überschreibt.Passport Benutzer überschreiben

Ich habe diesen Code zu Pass localStrategy

passport.use(new LocalStrategy(
    function(username, password, done) { 
    var passEncriptada = encriptar(username, password); 
    process.nextTick(function() { 
    UserDetails.findOne({'name':username}, 
     function(err, user) { 
     if (err) { return done(err); } 
     if (!user) { return done(null, false); } 
     if (user.password != passEncriptada) { return done(null, false); } 
     return done(null, user); 
     }); 
}); 

} ));

Und wenn ich mit einem Benutzer anmelden, gehe ich zum/Ansicht und verwenden Sie die req.user

app.get('/', function(req,res){ 
var user = req.user; 
    res.render('index', { 
     title: 'Ejemplo de Passport JS', 
     user: user 
    }); 
}); 

Was kann ich anmelden, um die zwei Benutzer zu trennen?

Sie können den vollständigen Code sehen here, in app.js

+0

Testen Sie im selben Browser? – robertklep

+0

Ja, ich benutze Google Chrome – elvaqueroloconivel1

Antwort

3

Passport (Standard) Spuren in Benutzer mittels eines Sitzungsschlüssel angemeldet. Dieser Schlüssel wird im Browser mittels eines Cookies gespeichert.

Wenn Sie den gleichen Browser verwenden, um sich als zweiter Benutzer anzumelden, während Sie bereits angemeldet sind, wird das Cookie des ersten Benutzers mit dem Cookie des zweiten Benutzers überschrieben. Sie können nur als ein Benutzer angemeldet sein, insbesondere der Benutzer, bei dem Sie zuletzt angemeldet waren.

Sie sollten in der Lage sein, Ihr Backend zu testen, indem Sie sich als zweiter Benutzer von einem anderen Browser aus anmelden (weil Browser ihre Cookies nicht freigeben).