39 lines
1.1 KiB
JavaScript
39 lines
1.1 KiB
JavaScript
const passport = require('passport');
|
|
const LocalStrategy = require('passport-local').Strategy;
|
|
|
|
const AuthService = require('../services/AuthService');
|
|
const AuthInstance = new AuthService();
|
|
|
|
module.exports = async (app) => {
|
|
app.use(passport.initialize());
|
|
app.use(passport.session());
|
|
|
|
passport.serializeUser((user, done) => {
|
|
process.nextTick(() => {
|
|
done(null, user);
|
|
})
|
|
});
|
|
|
|
passport.deserializeUser((user, done) => {
|
|
process.nextTick(async () => {
|
|
const user = await LoginService(user.email, user.password);
|
|
return (user) ? done(null, user) : done(null, false);
|
|
})
|
|
});
|
|
|
|
passport.use(new LocalStrategy(
|
|
{
|
|
usernameField: 'email',
|
|
passwordField: 'password'
|
|
},
|
|
async (email, password, done) => {
|
|
try {
|
|
const response = await AuthInstance.login({ email: email, password: password });
|
|
return done(null, response);
|
|
} catch(e) {
|
|
return done(e);
|
|
}
|
|
}));
|
|
|
|
return passport;
|
|
} |