Nella piattaforma Auth0 durante la fase di signup di un nuovo utente, può essere necessario associare all’utente uno o più ruoli. Questa operazione può essere fatta in diversi modi, utilizzando ad esempio le action oppure creando una Rule customizzata.
Nel mio caso ho preferito la seconda strada, che mi è sembrata più rapida.
Per prima cosa è necessario creare i ruoli all’interno della piattaforma, selezionando la voce all’interno del menu Roles.

Successivamente, posizionandosi sul dettaglio di ciascun ruolo è necessario recuperarne l’id:

A questo punto creare una rule vuota e copiare il codice seguente, modificando l’elenco degli ID dei ruoli che devono essere aggiunti per default all’interno della variabile data.
function (user, context, callback) {
const count = context.stats && context.stats.loginsCount ? context.stats.loginsCount : 0;
if (count > 1) {
return callback(null, user, context);
}
const ManagementClient = require('auth0@2.27.0').ManagementClient;
const management = new ManagementClient({
token: auth0.accessToken,
domain: auth0.domain
});
const params = { id : user.user_id};
const data = { "roles" : ["rol_1xxxxxx","rol_2xxxxxx
"]};
management.users.assignRoles(params, data, function (err, user) {
if (err) {
// Handle error.
console.log(err);
}
callback(null, user, context);
});
}Al primo login (ottenuto analizzando loginsCount) dell’utente, verranno aggiunti i ruoli.