2017-03-21 5 views
0

Ich kann https://xxx.au.auth0.com/api/v2/ verwenden, um den Benutzer abzufragen und zu aktualisieren. Es ist jedoch nicht möglich, Rollen zu erstellen und sie dem Benutzer zuzuweisen.auth0: Benutzerrollen mit v2 api aktualisieren

Irgendeine Idee bitte?

+0

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

Antwort

0

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.