/ / auth0: zaktualizuj role użytkowników za pomocą v2 api - auth0

auth0: aktualizuj role użytkowników za pomocą v2 api - auth0

mogę użyć https://xxx.au.auth0.com/api/v2/ zapytać i zaktualizować użytkownika. Nie można jednak tworzyć ról i przypisywać ich do użytkownika.

Masz pomysł?

Odpowiedzi:

1 dla odpowiedzi № 1

Prostym sposobem na to jest Auth0 jest z Reguły - w którym dodaje się informacje o rolach do atrybutu app_metadata profilu użytkownika.

Na przykład tutaj jest prosty przykład

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);
});
}
});
}

Role są teraz częścią Profil użytkownika i dostępne w app_metadata do kontroli. Jeśli dodatkowo chcesz, aby informacje o rolach pojawiały się w zwróconym torze identyfikacyjnym JWT, po prostu dodaj roles zakres do żądania uwierzytelnienia.