express/src/libs/passport.js
2024-01-07 12:32:39 +01:00

41 lines
1.1 KiB
JavaScript

import { Strategy as JwtStrategy, ExtractJwt } from 'passport-jwt';
// import createHttpError from 'http-errors';
import { jwtKey } from '../config';
const jwtOptions = {
jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken(),
secretOrKey: jwtKey,
passReqToCallback: true,
};
export default (passport) => {
passport.serializeUser((user, done) => {
done(null, user);
});
passport.deserializeUser((user, done) => {
done(null, user);
});
passport.use(
'jwt',
new JwtStrategy(jwtOptions, (req, jwtPayload, next) => {
// INFO: C'est ici que l'on vérifie que le contenu du payload est valide
/**
* Exemple de jwtPayload:
* {
* userId: X,
* }
*
* On doit aller faire une requête sur la table Users pour vérifier
* qu'il y a un bien un user avec comme id X.
* Si ok :
* next(null, user);
* Sinon :
* throw createHttpError(401);
*/
})
);
};