2017-06-05 48 views
1

我正在使用Node.js,express,passport和MySQL。Passport Node(错误:无法反序列化用户退出会话。)

这里是我的反序列化代码:

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说“行”还是返回了用户需要的行检查。

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

回答

0

回行

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

像这样? app.get('/ logout',function(req,res){req.logout(); res.redirect('/'); if(err){console.log(err); return callback err); } callback(null,rows [0]); }); –

+0

您可以使用完成,因为您将它作为功能传递 –

+0

谢谢。是我的错误。我改变了数据库和表“用户”更名为“用户”... –

0

后续评论:

return done(err, null);

return done(err);:错误应该作为done()函数的第一个参数传递

而反序列化对象应该过去了,你就会明白:

return done(err, rows[0]);