express-blog-api/strategy/jwt.js
2023-09-18 13:43:22 -07:00

20 lines
640 B
JavaScript

const User = require("../models/user.js");
const JwtStrategy = require("passport-jwt").Strategy;
const ExtractJwt = require("passport-jwt").ExtractJwt;
const opts = {};
opts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken();
opts.secretOrKey = process.env.SECRET_KEY;
const getAdmin = async () => {
const admin = await User.findOne({}).lean().exec(); // only one user in DB - admin. pull it up, jamie!
return admin;
};
module.exports = new JwtStrategy(opts, (jwt_payload, done) => {
const admin = getAdmin();
if (jwt_payload.username === admin.username) {
return done(null, true);
}
return done(null, false);
});