Ich habe versucht, dies für mehrere Tage zu lösen. Ich folgte dem Tutorial in Auth0's Dokumentation.Decoding das Token gibt kein Benutzerprofil
Nach der Decodierung des Tokens mit Express-jwt:
export let headerJWTCheck = expressJwt({
secret: '*************************',
audience: '******************************'
});
der Gehalt an req.user nicht über das Profil und die Rollen, die ich für Rolleneinschränkungen in der API benötigen.
Stattdessen ist der Inhalt in der Form:
{ iss: 'https://******.eu.auth0.com/',
sub: 'google-oauth2|***********************',
aud: '********************',
exp: **************,
iat: **************}
Im vorderen Ende mir bereits die Benutzerprofilinformationen Ich brauche, aber ich kann darüber hinaus nicht fortschreiten.
Ich verwende eine Funktion, um die Rollen zu Beschrän:
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');
}
}
aber req.user.profile ist immer undefiniert.
Im Haupt express Anwendungsdefinition ich habe:
app.use(cookieParser());
app.use(session({
.................
}));
configurePassport();
app.use(passport.initialize());
app.use(passport.session());
Danke für die Einstellung in die richtige Richtung. :) –