Ein einfacher Weg, dies zu tun ist in Auth0 ist mit Rules - wodurch Sie die Rollen Informationen zum Benutzerprofil app_metadata Attribut hinzufügen.
Zum Beispiel, hier ist ein einfaches Beispiel
function addRolesToUser(user, context, callback) {
// ignore this rule if not correct client id of application using Rules
if (context.clientID !== 'eTQbNn3qxxxxxxxxxxxL6R7M7MDh') {
return callback(null, user, context);
}
user.app_metadata = user.app_metadata || {};
user.user_metadata = user.user_metadata || {};
// You can add a Role based on what you want
// In this case I check domain - give gmail ADMIN role
var addRolesToUser = function (user, cb) {
if (user.email.indexOf('@gmail.com') > -1) {
cb(null, ['ROLE_ADMIN', 'ROLE_USER']);
} else {
cb(null, ['ROLE_USER']);
}
};
addRolesToUser(user, function (err, roles) {
if (err) {
callback(err);
} else {
user.app_metadata.roles = roles;
auth0.users.updateAppMetadata(user.user_id, user.app_metadata)
.then(function() {
callback(null, user, context);
})
.catch(function (err) {
callback(err);
});
}
});
}
Die Rollen sind nun Teil der User Profile und in der app_metadata zur Inspektion. Wenn Sie zusätzlich möchten, dass die Rolleninformationen im zurückgegebenen JWT-ID-Token angezeigt werden, fügen Sie einfach den Bereich roles
zu Ihrer Authentifizierungsanforderung hinzu.
Ich hoffe, Sie haben gefunden, was Sie gesucht haben. Habe unten eine Antwort gegeben, die tun sollte, was du brauchst. Wenn Sie immer noch Probleme haben, hinterlassen Sie mir bitte Kommentare unter der Antwort und ich werde versuchen, Ihnen zu helfen. – arcseldon