MusicTopus/src/libs/passport.js

59 lines
1.7 KiB
JavaScript

/* eslint-disable func-names */
const mongoose = require("mongoose");
const LocalStrategy = require("passport-local").Strategy;
const { BasicStrategy } = require("passport-http");
const Users = mongoose.model("Users");
module.exports = function (passport) {
passport.serializeUser((user, done) => {
done(null, user);
});
passport.deserializeUser((user, done) => {
done(null, user);
});
passport.use(
"user",
new LocalStrategy(
{
usernameField: "email",
passwordField: "password",
},
(email, password, done) => {
Users.findOne({ email })
.then((user) => {
if (!user || !user.validPassword(password)) {
return done(
null,
false,
"Oops! Identifiants incorrects"
);
}
return done(null, user);
})
.catch(done);
}
)
);
passport.use(
"basic",
new BasicStrategy((email, password, done) => {
Users.findOne({ email })
.then((user) => {
if (!user || !user.validPassword(password)) {
return done(
null,
false,
"Oops! Identifiants incorrects"
);
}
return done(null, user);
})
.catch(done);
})
);
};