Advertisement
rhuntington

passport.js

May 27th, 2019
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const Strategy = require('passport-local').Strategy;
  2. const knex = require('../knex/knex');
  3. const users = knex('users');
  4. const bcrypt = require('bcrypt');
  5.  
  6. // passport strategy
  7. module.exports = (passport) => {
  8.     passport.serializeUser((user, done) => {
  9.         done(null, user[0]['userid']);
  10.     });
  11.    
  12.     passport.deserializeUser((id, done) => {
  13.         users.where({
  14.             userid: id
  15.         }).then((user, err) => {
  16.             return err ? done(err) : done(null, user);
  17.         })
  18.     });
  19.    
  20.     passport.use(new Strategy((username, password, done) => {
  21.         users.where({
  22.             username: username
  23.         }).then((user) => {
  24.             if(!user) {return done(null, false);}
  25.             let checkUserPassword = async (password, checkPassword) => {
  26.                 let check = await bcrypt.compare(password, checkPassword);
  27.                 return check !== true ? done(null, false) : done(null, user);
  28.             }
  29.             checkUserPassword(password, user[0]['password']);
  30.             console.log(`Check with inside middleware check function: ${username} ${password}`);
  31.  
  32.         }).catch(err => console.log(err));
  33.     }));
  34. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement