2016-10-13 6 views
0

Ich erstelle eine Anwendung für ein Online-Quiz. Der Tech-Stack für Serverseite ist Knoten, Express, Pass, Mongo und Mungo. Die Clientseite ist Angular.Wie implementieren Sie LocalStrategy und eine CustomStrategy zusammen?

In dieser Anwendung muss ich zwei Arten von Authentifizierung und Sitzung erstellen. Für Admin muss ich LocalStrategy (Benutzername, Passwort) mit fester Sitzungszeit implementieren. Und für den Kandidaten eine CustomStrategy (emailID) mit individuellen Sessions und Ablaufzeit.

Wie kann ich das umsetzen?

Antwort

1

Ich habe eine CustomStrategy und LocalStrategy zusammen verwendet.

passport.use(new LocalStrategy({ 
    usernameField: 'email' 
}, function(email, password, done) { 
    User.findOne({ 
     email: email.toLowerCase() 
    }, function(err, user) { 
     if (!user) { 
      return done(null, false, { 
       msg: 'Email ' + email + ' not found.' 
      }); 
     } 
     user.comparePassword(password, function(err, isMatch) { 
      if (isMatch) { 
       return done(null, user); 
      } else { 
       return done(null, false, { 
        msg: 'Invalid email or password.' 
       }); 
      } 
     }); 
    }); 
})); 



passport.use(new CustomStrategy(
    function(req, done) { 
     Invite.findById(req.params.id, function(err, invite) { 
      if (err) { 
       console.log(err) 
      } 
      if (!invite) { 
       return done(null, false, { 
        msg: 'Invite not found.' 
       }); 
      } 
      done(null, invite); 
     }); 
    } 
)); 
Verwandte Themen