Ich habe einen Nodejs Express-Service mit Express-JWT mit einem geschützten API-Anruf.Fehlende "Admin" -Eigenschaft in Express-JWT
app.get('/protected',
jwtCheck, function(req, res) {
console.log(JSON.stringify(req.user));
if (!req.user.admin)
return res.send("user");
res.send("admin");
});
Das Problem ist, das req.user Objekt enthält nicht das Feld "admin". Ich habe die Rollen in Auth0-Regeln hinzugefügt, damit ich sie in meinem Client verwenden kann, nur nicht auf dem Nodejs-Server.
folgte ich dem Tutorial von hier: https://github.com/auth0/express-jwt
Habe ich hier etwas verpasst? Gibt es eine Regel, die ich in auth0 einstellen muss, damit das Admin-Feld hinzugefügt wird?
BEARBEITEN: Gefunden diese Beschreibung in einem Git-Problem: "Ihr Token muss die Informationen enthalten (zB: Rollen). Um dies mit Auth0 zu tun, müssen Sie den entsprechenden Bereich anfordern, zB: scope = openid E-Mail-Rollen. " Nun, wie bearbeite ich den Umfang für Express-JWT?
Vielen Dank im Voraus!
Um das Problem besser zu verstehen, können Sie ein Beispielzugriffstoken einschließen, mit dem Sie diese API aufrufen? Es kann ein abgelaufenes Token sein oder Sie können [den Signaturteil entfernen] (https://auth0.com/learn/json-web-tokens/); zusätzlich, wenn es sensible Informationen über die Nutzlast gibt, können Sie die Werte maskieren (verwenden Sie [jwt.io] (https://jwt.io/)). –