rhuntington icon

passport.js

rhuntington | PRO | 05/28/19 01:32:06 AM UTC | 0 ⭐ | 311 👁️ | Never ⏰ | []
JavaScript |

1.16 KB

|

None

|

0 👍

/

0 👎

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