const Strategy = require('passport-local').Strategy; const knex = require('../knex/knex'); const users = knex('users'); const bcrypt = require('bcrypt'); // passport strategy module.exports = (passport) => { passport.serializeUser((user, done) => { done(null, user[0]['userid']); }); passport.deserializeUser((id, done) => { users.where({ userid: id }).then((user, err) => { return err ? done(err) : done(null, user); }) }); passport.use(new Strategy((username, password, done) => { users.where({ username: username }).then((user) => { if(!user) {return done(null, false);} let checkUserPassword = async (password, checkPassword) => { let check = await bcrypt.compare(password, checkPassword); return check !== true ? done(null, false) : done(null, user); } checkUserPassword(password, user[0]['password']); console.log(`Check with inside middleware check function: ${username} ${password}`); }).catch(err => console.log(err)); })); }