31 lines
794 B
JavaScript
31 lines
794 B
JavaScript
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);
|
|
});
|
|
}
|
|
));
|
|
}
|