Files
forgetmenot-django/api/config/passport.js

32 lines
750 B
JavaScript

/**
* Config: Passport.js
*/
const StrategyJWT = require(`passport-jwt`).Strategy;
const ExtractJWT = require(`passport-jwt`).ExtractJwt;
const userUtils = require(`../controllers/users/utils`);
const db = require(`../db`);
module.exports = (passport) => {
const options = {};
options.jwtFromRequest = ExtractJWT.fromAuthHeaderAsBearerToken();
options.secretOrKey = process.env.tokenSecret;
passport.use(
new StrategyJWT(options, async (jwtPayload, done) => {
let user;
try {
user = await db.getById(`user`, jwtPayload.id);
} catch (error) {
console.log(error);
return done(error, null);
}
if (!user) {
return done(null, false);
}
return done(null, userUtils.convertToPublicFormat(user));
})
);
};