Po przejrzeniu dokumentacji paszportu.js (chwała dla Jareda) zrozumiałem, że prawie wszystko robię źle.
-
Utworzono dwie lokalne strategie
passport.use('userLocal', new LocalStrategy(User.authenticate())); passport.use('clientLocal', new LocalStrategy(Client.authenticate()));
i uwierzytelnienia,
passport.authenticate('userLocal')(req, res, function () {
res.redirect('/profile');
});
and
passport.authenticate('clientLocal')(req, res, function () {
res.redirect('/client');
});
-
Używany moduł paszportu (l=nie używający modułu paszport-local-mongoose) dla serializeUser i deseriealizeUser.
passport.serializeUser(function(user, done) { done(null, user); });
passport.deserializeUser(function(user, done) { if(user!=null) done(null,user); });
Cały schemat użytkownika (obiekt) jest teraz przechowywany w żądaniu i można do niego uzyskać dostęp za pośrednictwem dowolnej trasy.
Mam nadzieję, że pomoże to innym z podobnym problemem.