След като прегледах документацията на passport.js (поздравления за Джаред), разбрах, че правя почти всичко погрешно.
-
Създадени две локални стратегии
passport.use('userLocal', new LocalStrategy(User.authenticate())); passport.use('clientLocal', new LocalStrategy(Client.authenticate()));
и за удостоверяване,
passport.authenticate('userLocal')(req, res, function () {
res.redirect('/profile');
});
and
passport.authenticate('clientLocal')(req, res, function () {
res.redirect('/client');
});
-
Използван паспортен модул (l=не използва модула passport-local-mongoose) за serializeUser и deseriealizeUser.
passport.serializeUser(function(user, done) { done(null, user); });
passport.deserializeUser(function(user, done) { if(user!=null) done(null,user); });
Цялата потребителска схема (обект) вече се съхранява в заявката и може да бъде достъпна през всеки от вашите маршрути.
Надявам се да помогне на други с подобен проблем.