MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Supporto per più tipi di utente da Passport-local mongoose node.js

Dopo aver esaminato la documentazione di passport.js (complimenti a Jared), ho capito che stavo sbagliando quasi tutto.

  1. Creato due localStrategies

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

e per autenticare,

passport.authenticate('userLocal')(req, res, function () {
    res.redirect('/profile');
  });
and
passport.authenticate('clientLocal')(req, res, function () {
    res.redirect('/client');
  });
  1. Modulo passaporto utilizzato (l=non utilizzando il modulo passport-local-mongoose) per serializeUser e deseriealizeUser.

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

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

L'intero schema utente (oggetto) è ora archiviato nella richiesta ed è possibile accedervi tramite qualsiasi percorso.

Spero che aiuti altri con un problema simile.