passport-local
passport-local copied to clipboard
set authentication on two entity of user
Environment
- Node version: lts
- passport version: latest
- passport-local version: latest
hello guys. i using passport-local for authentication and i want apply local auth strategy on two type of user : normal users and admin.
how to handle this senario with passport-local?
please help me. thank you.
@behzadnm99 did you find any solution for this? I am facing the same issue here.
you can rename your strategy, for example :
passport.use("local-admin", new LocalStrategy(
function(username, password, done) {
UserAdmin.findOne({ username: username }, function (err, user) {
if (err) { return done(err); }
if (!user) { return done(null, false); }
if (!user.verifyPassword(password)) { return done(null, false); }
return done(null, user);
});
}
));
passport.use("local-user", new LocalStrategy(
function(username, password, done) {
User.findOne({ username: username }, function (err, user) {
if (err) { return done(err); }
if (!user) { return done(null, false); }
if (!user.verifyPassword(password)) { return done(null, false); }
return done(null, user);
});
}
));
and in your route :
app.post('/admin/login',
passport.authenticate('local-admin', { failureRedirect: '/admin/login' }),
function(req, res) {
res.redirect('/admin');
});
app.post('/login',
passport.authenticate('local-user', { failureRedirect: '/login' }),
function(req, res) {
res.redirect('/');
});