/* 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); }), ); };