// eslint-disable-next-line import/named import { ExtractJwt, Strategy as JwtStrategy } from 'passport-jwt'; import Auth from '../../model/auth'; import { getJwtSecret } from '../../utils/jwt'; const opts = { jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken(), secretOrKey: getJwtSecret(), issuer: process.env.JWT_ISSUER, audience: process.env.JWT_AUDIENCE, }; export default new JwtStrategy(opts, async (jwt_payload, done) => { const auth = await Auth.findOne({ record: jwt_payload.sub }).catch(); if (auth) { return done(null, auth); } return done(null, false); });