Depois de passar pela documentação do passaporte.js (parabéns ao Jared), entendi que estava fazendo quase tudo errado.
-
Criou duas localStrategies
passport.use('userLocal', new LocalStrategy(User.authenticate())); passport.use('clientLocal', new LocalStrategy(Client.authenticate()));
e para autenticar,
passport.authenticate('userLocal')(req, res, function () {
res.redirect('/profile');
});
and
passport.authenticate('clientLocal')(req, res, function () {
res.redirect('/client');
});
-
Módulo de passaporte usado (l=não usando o módulo de passaporte-local-mongoose) para serializeUser e deseriealizeUser.
passport.serializeUser(function(user, done) { done(null, user); });
passport.deserializeUser(function(user, done) { if(user!=null) done(null,user); });
Todo o esquema do usuário (objeto) agora está armazenado na solicitação e pode ser acessado por qualquer uma de suas rotas.
Espero que ajude outros com um problema semelhante.