Skip to content

Instantly share code, notes, and snippets.

@bikashthapa01
Created November 5, 2018 13:51
Show Gist options
  • Save bikashthapa01/293a48874fd35ef40886c169508425a1 to your computer and use it in GitHub Desktop.
Save bikashthapa01/293a48874fd35ef40886c169508425a1 to your computer and use it in GitHub Desktop.
Passport Login strategy and Expression Session For nodejs application created with MYSQL
//packages used
var session = require('express-session');
var MySQLStore = require('express-mysql-session')(session);
var passport = require('passport');
var LocalStrategy = require('passport-local').Strategy;
// express session setup and passport initialization
var options = {
host: 'localhost',
user: 'root',
password: '',
port: 3325,
database : 'sampleAuth'
};
var sessionStore = new MySQLStore(options);
app.use(session({
secret: 'jhjjdddjjdhbeubvbrufbvjfjswirfiuh',
resave: false,
saveUninitialized: true,
store:sessionStore
//cookie: { secure: true }
}));
app.use(passport.initialize());
app.use(passport.session());
app.use(function(req,res,next){
res.locals.isAuthenticated = req.isAuthenticated();
next();
});
// after router
passport.use(new LocalStrategy(
function(username, password, done) {
const db = require('./db');
db.query('SELECT id,password FROM user WHERE usn=?',[username],
function(err,results,fields){
if(err){
done(err);
};
if(results.length === 0){
done(null,false);
}else {
const hash = results[0].password.toString();
bcrypt.compare(password,hash,(err,res)=>{
if(res == true){
return done(null,{user_id:results[0].id});
}else {
return done(null,false);
}
});
}
});
}));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment