sql >> Databasteknik >  >> NoSQL >> MongoDB

Stöd för flera användartyper av Passport-lokal mongoose node.js

Efter att ha gått igenom dokumentationen för passport.js (kudos till Jared) förstod jag att jag gjorde nästan allt fel.

  1. Skapade två lokala strategier

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

och för att autentisera,

passport.authenticate('userLocal')(req, res, function () {
    res.redirect('/profile');
  });
and
passport.authenticate('clientLocal')(req, res, function () {
    res.redirect('/client');
  });
  1. Använde passmodulen (l=använder inte modulen passport-local-mongoose) för serializeUser och deseriealizeUser.

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

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

Hela användarschemat (objektet) lagras nu i begäran och kan nås via vilken som helst av dina rutter.

Hoppas det hjälper andra med liknande problem.



  1. Hur tar man bort dubbletter baserade på en nyckel i Mongodb?

  2. Så här gör du:Inkludera tredjepartsbibliotek i ditt MapReduce-jobb

  3. Datumfråga med ISODate i mongodb verkar inte fungera

  4. Hur ansluter man till en Redis-behållare med Docker Compose?