Files
e-commerce/loaders/passport.js
2022-09-26 17:44:43 -05:00

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 foundUser = await AuthInstance.login(user);
return foundUser ? done(null, foundUser) : 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;
}