/** * Config: Passport.js */ const StrategyJWT = require(`passport-jwt`).Strategy; const ExtractJWT = require(`passport-jwt`).ExtractJwt; const userUtils = require(`../controllers/users/utils`); const db = require(`../db`); module.exports = (passport) => { const options = {}; options.jwtFromRequest = ExtractJWT.fromAuthHeaderAsBearerToken(); options.secretOrKey = process.env.tokenSecret; passport.use( new StrategyJWT(options, async (jwtPayload, done) => { let user; try { user = await db.getById(`user`, jwtPayload.id); } catch (error) { console.log(error); return done(error, null); } if (!user) { return done(null, false); } return done(null, userUtils.convertToPublicFormat(user)); }) ); };