J'ai essayé de résoudre ce problème pendant plusieurs jours. J'ai suivi le tutoriel dans la documentation d'Auth0.Décoder le jeton ne donne pas le profil de l'utilisateur
Après décodage du jeton express JWT:
export let headerJWTCheck = expressJwt({
secret: '*************************',
audience: '******************************'
});
le contenu de req.user n'a pas le profil et les rôles que j'ai besoin des restrictions de rôle dans l'API.
En revanche, le contenu est sous la forme:
{ iss: 'https://******.eu.auth0.com/',
sub: 'google-oauth2|***********************',
aud: '********************',
exp: **************,
iat: **************}
En fin avant que je reçois déjà les informations de profil d'utilisateur j'ai besoin, mais je ne peux pas progresser au-delà.
J'utilise une fonction pour RESTRICTION les rôles:
export function requireRole(role: string) {
return function (req, res, next) {
console.log(req.user);
var appMetadata = req.user.profile._json.app_metadata || {};
var roles = appMetadata.roles || [];
if (roles.indexOf(role) != -1) {
next();
} else {
res.redirect('/unauthorized');
}
}
mais req.user.profile est toujours définie.
Dans la définition principale de l'application expresse J'ai:
app.use(cookieParser());
app.use(session({
.................
}));
configurePassport();
app.use(passport.initialize());
app.use(passport.session());
Merci de m'avoir placé dans la bonne direction. :) –