var passport =require('passport');var LocalStrategy =require('passport-local').Strategy;
passport.serializeUser(function(user, done){//In serialize user you decide what to store in the session. Here I'm storing the user id only.done(null, user.id);});
passport.deserializeUser(function(id, done){//Here you retrieve all the info of the user from the session storage using the user id stored in the session earlier using serialize user.
db.findById(id,function(err, user){done(err, user);});});
passport.use(newLocalStrategy(function(username, password, done){
db.findOne({'username':username},function(err,student){if(err)returndone(err,{message:message});//wrong roll_number or password; var pass_retrieved = student.pass_word;
bcrypt.compare(password, pass_retrieved,function(err3, correct){if(err3){
message =[{"msg":"Incorrect Password!"}];returndone(null,false,{message:message});// wrong password}if(correct){returndone(null,student);}});});}));
app.use(session({ secret:'super secret'}));//to make passport remember the user on other pages too.(Read about session store. I used express-sessions.)
app.use(passport.initialize());
app.use(passport.session());
app.post('/',passport.authenticate('local',{successRedirect:'/users' failureRedirect:'/'}),function(req,res,next){});