2016-07-07 4 views
4

Ich verwende eine benutzerdefinierte Token-Methode zur Authentifizierung in Firebase. Von Server, ich JWToken bekommen, die Daten zusätzlich zu anderen Token Felder folgende ist:Wie füge ich zusätzliche Felder aus dem benutzerdefinierten Firebase-Token in "UserInfo" zurück

{ "uid" : "user_uid", "user_role": "admin" } 

In Firebase 2.x:

Wir Token Felder holen verwendet -

authData.getAuth().get("user_role").toString(); 

Aber in der neuen Firebase SDK:

H um die Daten (Wert von "user_role") von Token zu erhalten.

ANMERKUNG: Ich habe versucht, mit Userinfo auf den Wert von „user_role“ zu erhalten, aber es gibt keine Methode/Art und Weise solche benutzerdefinierten Felder zu holen.

Antwort

3

Die zusätzlichen Ansprüche sind in den Firebase-Sicherheitsregeln für die Echtzeitdatenbank und den Speicher verfügbar.

Auf der Client-Seite, da die JWT-Ansprüche nur in das Token codiert sind, können Sie das Token dekodieren und die Ansprüche einsehen. Sie können dazu die jwt-decode-Bibliothek im Browser verwenden. Nach der Dekodierung werden Sie alle benutzerdefinierten Authentifizierungsanfragen sehen können.

Sie können die Ansprüche auch in der Realtime-Datenbank selbst unter dem Knoten der einzelnen Benutzer speichern und bei Bedarf einfach von dort lesen. Sie können dann eine Regel für diesen Knoten festlegen, sodass nur der angemeldete Benutzer seine eigenen Ansprüche lesen kann.

+1

Die Firebase-Talk-Gruppe hatte kürzlich auch einen [Thread über die Dekodierung des JWT, um auf Informationen zuzugreifen] (https://groups.google.com/forum/#!msg/firebase-talk/xegiLwPcyow/PE7pTRV4GQAJ). –

+0

Das hat wirklich für mich funktioniert. Ich danke dir sehr :) –