2017-02-18 1 views
1

Ich erstelle eine Serverroute, die ich nur für authentifizierte Benutzer einschränken möchte. Ich plane, eine user.uid mit einem POST zu dieser Route zu senden, und ich möchte die UID validieren, die in Firebase vorhanden ist. Ich weiß, dass ich in Firebase manuell UIDs hinzufügen und mit diesen Daten vergleichen kann, aber ist es möglich, zu sehen, welche UIDs Firebase-Authentifizierung verfolgt? Ich denke, dieser Ansatz wäre besser, als auf meiner eigenen Liste nachzusehen.Gibt es eine Möglichkeit festzustellen, ob die UID eines Firebase-Benutzers gültig ist?

Der Zweck dafür ist sicherzustellen, dass auf diese Routen nicht mit einer falschen UID zugegriffen wird (z. B. für böswillige Zwecke).

Antwort

1

Sie können mithilfe des Firebase Admin SDK auf Ihrem Server überprüfen, ob eine bestimmte UID einem Firebase-Authentifizierungsbenutzer in Ihrem Projekt entspricht. Vom Firebase documentation on retrieving user data:

admin.auth().getUser(uid) 
    .then(function(userRecord) { 
    // See the UserRecord reference doc for the contents of userRecord. 
    console.log("Successfully fetched user data:", userRecord.toJSON()); 
    }) 
    .catch(function(error) { 
    console.log("Error fetching user data:", error); 
    }); 
+0

Das ist genau das, was ich brauchte. – skwny

0

Eine UID ist Teil der Nutzlast, wenn ein Benutzer auf Firebase Firebase authentifiziert und ist null, wenn ein Benutzer nicht authentifiziert ist. Sie können die UID bei der Benutzerauthentifizierung abrufen. Die Syntax ist unterschiedlich, je nachdem, welche Rahmen Sie arbeiten in

Überprüfen Sie die Firebase-API-Referenz für spezielle Syntax und Beispiele. https://firebase.google.com/docs/reference/

1

eine UID Validieren ist nicht genug, um böswillige Benutzer zu sperren: 1) die Angreifer könnte vorgeben, andere Benutzer zu sein, indem Sie die UID eines anderen Benutzers senden, und 2) die UID ändert sich nie oder läuft ab, was bedeutet, dass es keine Möglichkeit gibt, die Benutzer (oder Angreifer) zur erneuten Authentifizierung zu zwingen.

Sie müssen das Firebase-Token von der Client-App an Ihren Server übergeben und das Token validieren, bevor Sie es akzeptieren.

  • Das Token ist sicher von einem privaten Firebase-Schlüssel signiert. Keine andere Partei kann ein gültiges Firebase-Token ausgeben.

  • Das Token ist nur für eine Stunde gültig. Der Firebase-Server überprüft den Kontostatus (z. B. Kennwortänderungsereignis), bevor ein neues Token ausgestellt wird.

  • Die Token-Nutzdaten enthalten UID und Zielgruppe. Sie sollten überprüfen, ob die Zielgruppe Ihre eigene Anwendung ist.

  • Sie können Firebase Admin SDK oder Bibliotheken von Drittanbietern verwenden, um ein Firebase-Token zu überprüfen. Details siehe Firebase doc.

    +0

    Dies ist sicherlich eine bessere Methode. Ich werde diese Methode anstelle meiner ursprünglich erwogenen verwenden. – skwny

    Verwandte Themen