Passport会覆盖用户

时间:2016-05-22 17:11:29

标签: express pug passport.js

问题是当我用2个用户登录时,第二个用户会覆盖第一个用户。

我有这个代码来护照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);
      });
 });

} ));

并且,当我向用户登录时,我转到/ view并使用req.user

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

如何区分两个用户登录?

您可以在app.js

中查看完整代码here

1 个答案:

答案 0 :(得分:3)

Passport(默认情况下)通过会话密钥跟踪登录的用户。该密钥通过cookie存储在浏览器中。

如果您在登录时使用相同的浏览器以第二个用户身份登录,则第一个用户的cookie将被覆盖并使用第二个用户的cookie。您只能以一个用户身份登录,特别是您最后登录的用户。

您应该能够通过从其他浏览器以第二个用户身份登录来测试您的后端(因为浏览器不共享其Cookie)。