41 lines
1.1 KiB
JavaScript
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);
|
|
*/
|
|
})
|
|
);
|
|
};
|