MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Prise en charge de plusieurs types d'utilisateurs par Passport-local mongoose node.js

Après avoir parcouru la documentation de passeport.js (félicitations à Jared), j'ai compris que je faisais presque tout de travers.

  1. Création de deux stratégies locales

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

et pour s'authentifier,

passport.authenticate('userLocal')(req, res, function () {
    res.redirect('/profile');
  });
and
passport.authenticate('clientLocal')(req, res, function () {
    res.redirect('/client');
  });
  1. Module de passeport utilisé (l=n'utilisant pas le module passeport-local-mongoose) pour serializeUser et deseriealizeUser.

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

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

L'ensemble du schéma utilisateur (objet) est maintenant stocké dans la demande et est accessible via n'importe lequel de vos itinéraires.

J'espère que cela aidera d'autres personnes ayant un problème similaire.