【问题标题】:Passport Node(Error: Failed to deserialize user out of session.)Passport 节点(错误:无法将用户反序列化出会话。)
【发布时间】:2017-11-05 19:54:13
【问题描述】:

我正在使用 Node.js、express、passport 和 MySQL。

这是我的反序列化代码:

passport.deserializeUser(function(id, done) {
connection.query("select * from users where UserId = "+id,function(err,rows){  
        console.log(rows); 
        done(err, rows[0]);
    });
});

另外,使用 console.log 检查“rows”正在返回所需用户的行。

app.get('/logout', function(req, res){
  req.logout();
  res.redirect('/');
});

【问题讨论】:

    标签: mysql node.js express passport.js


    【解决方案1】:

    返回行

        if(err){
            console.log(err);
            return done(null,err);
        }
        done(null, rows[0]); // return row[0]
    

    【讨论】:

    • 喜欢吗? app.get('/logout', function(req, res){ req.logout(); res.redirect('/');if(err){ console.log(err); return callback(err); }回调(空,行[0]);});
    • 谢谢。是我的错。我更改了数据库,表“用户”被重命名为“用户”...
    【解决方案2】:

    后续评论:错误应该作为done()函数的第一个参数传递:

    return done(err, null);

    return done(err);

    而反序列化的对象应该按照你的方式传递:

    return done(err, rows[0]);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-22
      • 2014-12-12
      • 2021-09-11
      • 2021-03-14
      • 2013-11-25
      • 1970-01-01
      • 2018-07-23
      • 2019-03-26
      相关资源
      最近更新 更多