MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Unterstützung für mehrere Benutzertypen durch Passport-local mongoose node.js

Nachdem ich die Dokumentation von Passport.js durchgesehen hatte (ein großes Lob an Jared), wurde mir klar, dass ich fast alles falsch machte.

  1. Zwei localStrategies erstellt

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

und zu authentifizieren,

passport.authenticate('userLocal')(req, res, function () {
    res.redirect('/profile');
  });
and
passport.authenticate('clientLocal')(req, res, function () {
    res.redirect('/client');
  });
  1. Benutztes Passport-Modul (l=ohne Verwendung des Passport-Local-Mongoose-Moduls) für serializeUser und deserializeUser.

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

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

Das gesamte Benutzerschema (Objekt) wird nun in der Anfrage gespeichert und kann über jede Ihrer Routen aufgerufen werden.

Hoffe, es hilft anderen mit einem ähnlichen Problem.