function getJwtStrategy(db, settings) { const opts = {}; opts.secretOrKey = settings.jwtSecret || 'Ch4nG3 Th15'; opts.algorithms = [settings.jwtAlgorithm || 'HS256']; opts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken(); const jwtStrategy = new JwtStrategy(opts, (payload, done) => { db.findById(settings.usersTable || 'users', payload.sub) .then((user) => { if (!user) { return done(null, false, { message: 'This user is not registered' }); } return done(null, user); }) .catch((err) => { done(err, null, { message: 'Error connecting to database' }); }); }); return jwtStrategy; }
passport.use( new JwtStrategy( { secretOrKey: process.env.JWT_SECRET, jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken() }, (jwt_payload, cb) => { return cb(null, jwt_payload) } ) )
function createStrategy({ getByToken, secretOrKey, wrapUser }) { const opts = { jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken(), secretOrKey }; return new Strategy(opts, (jwtPayload, next) => getByToken(jwtPayload) .then((user) => { if (user) { return next(null, wrapUser(user)); } return next(null, false); }) .catch(() => next(null, false))); }
passport.use( new JwtStrategy( { jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken(), secretOrKey: APP_SECRET, }, (jwtPayload, done) => { User.findOne({ where: { email: jwtPayload.email } }) .then((user) => done(null, user.dataValues)) .catch((jwtErr) => console.error(`JWT Error: ${jwtErr}`)); } ) );
export default function(){ const strategy = new passportJWT.Strategy({ secretOrKey: config.jwtSecret, jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken() },(payload,done)=>{ const user = users.find((user)=>{ return user.id == payload.id }); if (user) { return done(null, {id: user.id}); } else { return done(new Error("User not found"), null); } }); passport.use(strategy); return { initialize: function() { return passport.initialize(); }, authenticate: function() { return passport.authenticate("jwt", config.jwtSession); } }; }
passport.use( new JWTstrategy( { secretOrKey: secret, jwtFromRequest: ExtractJWT.fromAuthHeaderAsBearerToken(), }, async (token, done) => { try { return done(null, token.user); } catch (error) { done(error); } } ) );
jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken(), secretOrKey: config.get('secret'), },
jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken(), secretOrKey: config.get('secret'), },