Files
auth-template/server/loaders/passport.js
2023-01-31 19:06:15 -06:00

33 lines
956 B
JavaScript

const passport = require('passport');
const { Strategy } = require('passport-local');
const AuthController = require('../controllers/authController');
async function passportLoader(app) {
app.use(passport.initialize());
app.use(passport.session());
passport.serializeUser((user, done) => {
done(null, user);
})
passport.deserializeUser((user, done) => {
done(null, user);
})
passport.use(new Strategy({ usernameField: "email", passwordField: "password" }, async (email, password, done) => {
try {
const response = await AuthController.login({ email: email, password: password });
if (response && response.ok) {
return done(null, response.data.data);
} else {
return done(null, false);
}
} catch (error) {
return done(error);
}
}))
return passport;
}
module.exports = passportLoader;