2017-06-05 30 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]);

相關問題