2017-01-07 2 views
2

ÜbersichtWie wird der vollständige Name des Benutzers anstelle der E-Mail-Adresse in Auth0 gespeichert?

Wenn ein Benutzer bis zu unserem Service eines externen Autorisierungsanbieter wie Google oder Facebook dann die Benutzer Namen gespeichert verwendet, wie Sie im Feld ‚Name‘ Auth0 erwarten würde. Wenn sich ein Benutzer jedoch mit seiner E-Mail-Adresse anmeldet, wird seine E-Mail-Adresse im Feld "Name" gespeichert.

Wir möchten, dass sich der echte Name des Benutzers immer im Feld "Name" befindet, um eine einfache Integration in andere Dienste von Drittanbietern zu ermöglichen.

Forschung

Aus der Dokumentation: https://auth0.com/docs/metadata

Auth0 ermöglicht es Ihnen, um Metadaten zu speichern oder zu jedem teilnehmerbezogenen Daten, dass nicht aus dem Identity-Provider ist gekommen. Es gibt zwei Arten von Metadaten:

user_metadata: speichert Benutzerattribute (wie Benutzereinstellungen), die keinen Einfluss auf die Kernfunktionalität eines Benutzers haben; app_metadata: speichert Informationen (z. B. den Supportplan eines Benutzers, Sicherheitsrollen oder Zugriffssteuerungsgruppen ), die sich auf die Kernfunktionalität eines Benutzers auswirken können, z. B. , wie eine Anwendung funktioniert oder auf was der Benutzer zugreifen kann.

So können wir den Namen des Benutzers in den Metadaten speichern und dann abrufen, wenn Auth0 das Profil zurückgibt. Dies ist jedoch nicht ideal, da es unnötige Komplexität hinzufügt.

Eine Frage von den offiziellen Foren: https://auth0.com/forum/t/editing-user-name/2944

Der Benutzer fragt:

Wenn ich Benutzer in der Datenbank des Auth0 Speicherung bin, es ist wirklich nicht möglich ihre realen Namen gesetzt ? Es scheint, als ob es nur E-Mail Adresse akzeptiert.

und bekommt die Antwort:

Es ist möglich, unter app_metadata oder user_metadata diese oder andere Informationen zu speichern. Sie können diese Informationen durch das Armaturenbrett, Regeln ändern oder die API: https://auth0.com/docs/api/management/v2#!/Users/patch_users_by_id

Grundsätzlich scheint es nicht überall in der Dokumentation oder auf dem Forum auf, wie dieses Problem zu lösen.

Wir haben endlich einen Weg gefunden, den Benutzernamen des Benutzers mit dem Benutzerprofil zurückzugeben. Ich habe die Antwort hier gepostet, um das Leben für andere Entwickler etwas einfacher zu machen, wenn dieses Problem auftritt.

Antwort

1

Lösung

Grundsätzlich, wenn Sie einen ‚Name‘ Eigenschaft auf den app_metadata für den Benutzer hinzufügen, dann das Profil des Benutzers Rückkehr Auth0 wird diesen Wert als den Namen des Benutzers verwenden, die beide auf dem Armaturenbrett und wenn über eine GET-Anfrage.

Beispiel JSON:

"app_metadata": { 
    "name": "Sam Murray", 
    // Any other properties that you want to store 

} 
+0

noch in dies ist nicht wünschenswert, da wir den Benutzernamen im Stamm des Benutzermodells nicht in app_metadata oder user_metadata festlegen müssen – ANinJa

1

Ich glaube, der Vorname und Nachname hat ben abgeschrieben, abgesehen von Kernauthentifizierungsfeldern auf dem Benutzer, fügen Sie benutzerdefinierten systematischen/Kern Metadaten app_metadata und speichern Sie alle anderen zugehörigen Daten in user_metadata, z Vorname und Nachname. Ich tue dies und habe dann nur eine Eigenschaft, die diese für eine FullName-Eigenschaft verkettet.

Verwandte Themen