59 lines
1.5 KiB
JavaScript
59 lines
1.5 KiB
JavaScript
/* eslint-disable func-names */
|
|
import {Strategy as LocalStrategy} from 'passport-local';
|
|
import {BasicStrategy} from 'passport-http';
|
|
|
|
import Users from '../models/Users';
|
|
|
|
export default (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,
|
|
{message: '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,
|
|
{message: 'Oops! Identifiants incorrects'},
|
|
);
|
|
}
|
|
|
|
return done(null, user);
|
|
})
|
|
.catch(done);
|
|
}),
|
|
);
|
|
};
|