This is the authenticate.js which will verify the user.
const passport=require('passport');
const LocalStrategy=require('passport-local').Strategy;
const User=require('./models/user');
const JwtStrategy=require('passport-jwt').Strategy;
const ExtractJwt=require('passport-jwt').ExtractJwt;
const jwt=require('jsonwebtoken');
const config=require('./config');
passport.use(new LocalStrategy(User.authenticate()));
passport.serializeUser(User.serializeUser());
passport.deserializeUser(User.deserializeUser());
exports.getToken=function(user){
return jwt.sign(user,config.secretKey,{expiresIn:3600});
};
var opts={};
opts.jwtFromRequest=ExtractJwt.fromAuthHeaderAsBearerToken();
opts.secretOrKey=config.secretKey;
exports.jwtPassport=passport.use(new JwtStrategy(opts,(jwt_payload,done)=>{
console.log("JWT payload:",jwt_payload);
User.findOne({_id:jwt_payload._id},(err,user)=>{
if(err){
return done(err,false);
}
else if(user){
return done(null,user);
}
else{
return done(null,false);
}
});
}));
exports.verifyUser=passport.authenticate('jwt',{session:false});
exports.verifyAdmin=function(req,res,next){
User.findOne({_id:req.user._id})
.then((user)=>{
console.log("User:",user);
if (user.admin)
next();
else {
err = new Error('You are not authorized to perform this operation!');
err.status = 403;
return next(err);
}
},(err)=>next(err))
.catch((err)=>next(err))
};`
this is user.js /login route where uer can send POST req to login
router.post('/login',cors.corsWithOptions,passport.authenticate('local'),(req,res)=>{
var token=authenticate.getToken({_id:req.user._id});
res.statusCode=200;
res.setHeader('Content-Type', 'application/json');
res.json({ success: true,token: token, status: 'You are succesfullly logged in!' });

It used to work but now POSTMAN shows UNAUTHORIZED on valid credentials.
It used to work but now POSTMAN shows UNAUTHORIZED on valid credentials.