forked from dbroqua/MusicTopus
58 lines
1.7 KiB
JavaScript
58 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);
|
|
})
|
|
);
|
|
};
|