sql >> Base de Datos >  >> NoSQL >> MongoDB

Compatibilidad con varios tipos de usuarios mediante Passport-local mongoose node.js

Después de revisar la documentación de pasaporte.js (felicitaciones a Jared), entendí que estaba haciendo casi todo mal.

  1. Creó dos estrategias locales

    passport.use('userLocal', new LocalStrategy(User.authenticate())); passport.use('clientLocal', new LocalStrategy(Client.authenticate()));

y 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 pasaporte usado (l=sin usar el módulo de pasaporte-local-mangoose) para serializeUser y deseriealizeUser.

    passport.serializeUser(function(user, done) { done(null, user); });

    passport.deserializeUser(function(user, done) { if(user!=null) done(null,user); });

El esquema de usuario completo (objeto) ahora está almacenado en la solicitud y se puede acceder a él a través de cualquiera de sus rutas.

Espero que ayude a otros con un problema similar.