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));
}));
}
Comments