【问题标题】:Passport overwrite users护照覆盖用户
【发布时间】:2016-09-19 12:29:44
【问题描述】:

问题是当我使用 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);
      });
 });

} ));

而且,当我使用用户登录时,我会转到 / 视图并使用 req.user

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

我该怎么做才能分开两个用户登录?

你可以在app.js中看到完整的代码here

【问题讨论】:

  • 您是否在同一个浏览器中进行测试?
  • 是的,我使用谷歌浏览器

标签: express pug passport.js


【解决方案1】:

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

如果您在已登录时使用同一浏览器以第二个用户身份登录,则第一个用户的 cookie 将被第二个用户的 cookie覆盖。您只能作为一个用户登录,特别是您上次登录的用户。

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

【讨论】:

    猜你喜欢
    • 2012-05-28
    • 2017-01-16
    • 2015-09-09
    • 1970-01-01
    • 1970-01-01
    • 2021-04-27
    • 1970-01-01
    • 2021-03-24
    • 1970-01-01
    相关资源
    最近更新 更多