Skip to content

Instantly share code, notes, and snippets.

@olegpolyakov
Created December 17, 2018 22:54
Show Gist options
  • Save olegpolyakov/82768c432c4200d6d3f1637f8fe16649 to your computer and use it in GitHub Desktop.
Save olegpolyakov/82768c432c4200d6d3f1637f8fe16649 to your computer and use it in GitHub Desktop.
Passport Local Strategies
const passport = require('passport');
const LocalStrategy = require('passport-local').Strategy;
const options = {
usernameField: 'email',
passwordField: 'password',
passReqToCallback: true
};
passport.use('register', new LocalStrategy(options, (req, email, password, done) => {
User.create({ email, password })
.then(
() => done(null, false, { message: 'Спасибо за регистрацию' }),
error => done(null, false, { message: error.message })
)
.catch(done);
}));
passport.use('login', new LocalStrategy(options, (req, email, password, done) => {
User.findOne({ email })
.then(user => {
if (!user || !user.validatePassword(password)) {
done(null, false, { message: 'Неверный логин или пароль' });
} else {
done(null, user, { message: 'С возвращением!' });
}
})
.catch(done);
}));
module.exports = {
register: passport.authenticate('register', {
successFlash: true,
failureFlash: true,
successRedirect: 'back',
failureRedirect: 'back'
}),
login: passport.authenticate('login', {
successFlash: true,
failureFlash: true,
successRedirect: 'back',
failureRedirect: 'back'
})
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment