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 № 1Prostym 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.