forked from dbroqua/MusicTopus
40 lines
1.1 KiB
JavaScript
40 lines
1.1 KiB
JavaScript
|
/* eslint-disable func-names */
|
||
|
const mongoose = require("mongoose");
|
||
|
const LocalStrategy = require("passport-local").Strategy;
|
||
|
|
||
|
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);
|
||
|
}
|
||
|
)
|
||
|
);
|
||
|
};
|