From 5ed8545710ba46ca633ca7b6206e8767a50f5b85 Mon Sep 17 00:00:00 2001 From: Muhammad Iqbal Rifai Date: Wed, 4 Jul 2018 11:17:32 +0200 Subject: [PATCH] Upload files to 'config' --- config/passport.js | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 config/passport.js diff --git a/config/passport.js b/config/passport.js new file mode 100644 index 0000000..30b072b --- /dev/null +++ b/config/passport.js @@ -0,0 +1,39 @@ +const passport = require('passport'); +const LocalStrategy = require('passport-local').Strategy; +const User = require('../models/user'); + +passport.serializeUser((user, done) => { + done(null, user.id); +}); + +passport.deserializeUser(async (id, done) => { + try{ + const user = await User.findById(id); + done(null, user.id); + }catch(error){ + done(error, null); + } +}); + +passport.use('local', new LocalStrategy({ + usernameField: 'email', + passwordField: 'password', + passReqToCallback: false +}, async (email, password, done)=>{ + try{ + // 1) Check if the email already exists + const user = await User.findOne({ 'email': email}); + if (!user){ + return done(null,false,{ message: 'Unknown User' }) + } + // 2) Check if the password is correct + const isValit = User.comparePasswords(password,user.password); + if(isValit){ + return done(null, user); + }else{ + return done(null, false,{ message: 'Unknown Password'}); + } + }catch(error){ + return done(error, false); + } +})); \ No newline at end of file