0
exports.initPassportLocalStrategy = function() {
passport.use(new LocalStrategy(
{
session: false
},
function(username, password, done) {
UserProxy.validateUserWithPassword(username, password)
.then(function (user) {
if(user) done(null, user);
else done(null, false);
})
.catch(done);
}
));
passport.serializeUser(function(user, cb) {
cb(null, user);
});
};
我正在實施基於令牌的身份驗證中間件而沒有見證。所以我想知道爲什麼我需要提供serialzeUser
函數?我讀過的原因是將用戶或其某些屬性放入會話中,然後desearlizeUser
將從會話中檢索整個對象並將其放入req.user
。PassportJS Node:爲什麼需要serializeUser和deserializeUser,即使不使用會話?
因此,這裏是我的問題:
爲什麼不能做(NULL,用戶);在
LocalStrategy
函數中把用戶放入req.user
?爲什麼甚至會煩擾連載和破壞?如果刪除
searlizeUser
函數,我會得到一個錯誤,但是我可以離開沒有deserilzeUser
函數,爲什麼?在這種情況下,誰將用戶對象設置爲req.user
?
非常感謝。