Support for multiple user types by Passport-local mongoose node.js

前端 未结 3 2032
一个人的身影
一个人的身影 2020-12-29 16:48

I wanted two types of users logging in (User, Client). How exactly can I create localStrategies, serialize and deserialize user for both types in my app.js I have two separa

3条回答
  •  慢半拍i
    慢半拍i (楼主)
    2020-12-29 17:55

    After going through the documentation of passport.js (kudos to Jared), I understood that I was doing almost everything wrong.

    1. Created two localStrategies

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

    and to authenticate,

    passport.authenticate('userLocal')(req, res, function () {
        res.redirect('/profile');
      });
    and
    passport.authenticate('clientLocal')(req, res, function () {
        res.redirect('/client');
      });
    
    1. Used passport module (l=not using the passport-local-mongoose module) for serializeUser and deseriealizeUser.

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

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

    The whole user schema (object) is now stored in the request and can be accessed through any of your routes.

    Hope it helps out others with a similar issue.

提交回复
热议问题