20 lines
640 B
JavaScript
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);
|
|
});
|