const passport = require('passport'); const JwtStrategy = require('passport-jwt').Strategy; const ExtractJwt = require('passport-jwt').ExtractJwt; const config = require('../../config'); const User = require('../../models/user'); module.exports = function(passport) { passport.use(new JwtStrategy( { jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken(), secretOrKey: config.security.jwt.secret, issuer: config.security.jwt.issuer, audience: config.security.jwt.audience, }, (jwt_payload, done) => { User.findOne({ _id: jwt_payload.sub }, (err, user) => { if (err) { return done(err, false); } if (user) { return done(null, user); } return done(null, false); }); } )); }