MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Suporte para vários tipos de usuário pelo nó do mongoose local do Passport.js


Depois de passar pela documentação do passaporte.js (parabéns ao Jared), entendi que estava fazendo quase tudo errado.

  1. 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');
  });

  1. 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.