Firebase serverseitige Authentifizierung mit HTTP-POST-Anforderung unter Verwendung des Firebase-Geheimnisses

8

Gemäß der Firebase-Dokumentation akzeptiert Firebase alle REST-API-Typen für die Authentifizierung.

REST-API - Firebase-Authentifizierung Mit anderen Worten, PUT / POST / GET-Anforderungen können alle in einer HTTP-Anforderung verwendet werden, um die Autorisierung zu authentifizieren. Dies ist der Beispielcode:

%Vor%

In der Firebase-Dokumentation heißt es außerdem:

  

Das Argument kann entweder Ihr Firebase Secret oder eine Authentifizierung sein   Token

Die POST-Anfrage, die ich sende, ist wie folgt konfiguriert:

%Vor%

Ich möchte also eine POST-Anfrage mit meinem Firebase Secret für die Server-Authentifizierung verwenden. Meine Sicherheitsregel lautet:

%Vor%

Ich erhalte einen Fehler von Firebase, der besagt:

  

Ungültiges Argument:   " Ссылка " zXRLa7lybhJ21ZYqpXuqkT6YAYyySAGJ10lXInKy "

Es scheint, als ob die Anfrage POST tatsächlich Firebase durchläuft und Firebase die Daten liest. Es ist nur so, dass das Argument nicht korrekt konfiguriert ist. Ich habe alles versucht, was mir einfällt. Ich bin mir nicht sicher, wie die CREDENTIALS konfiguriert werden sollen, und ich kann nichts darüber finden. Vielleicht sollte es so etwas wie:

%Vor%

Ich habe das gerade versucht und es wird es nicht akzeptieren.

Ich habe auch versucht mit:

%Vor%

In der Hoffnung, dass egal was ich in der REST-API gesendet wurde, würde akzeptiert werden, aber das hat nicht funktioniert.

Was mache ich falsch? Ich habe die Dokumentation viele Male durchgegangen, habe hier gesucht, eine Google-Gruppe durchsucht. Ich kann es nicht herausfinden. Ich muss das Format und die Syntax für das Senden der POST-Daten in den CREDENTIALS kennen.

    
Sandy Good 05.03.2014, 04:05
quelle

2 Antworten

8

Die URL kann json nicht parsen. Es ist nur eine Zeichenfolge. Einfach das Token direkt einbinden.

%Vor%

Wenn Sie Ihr firebase-Geheimnis in der URL verwenden, werden Sicherheitsregeln nicht angewendet. Das Geheimnis erlaubt Ihnen den vollen Lese- / Schreibzugriff ohne Rücksicht auf Sicherheitsregeln oder Validierung. Sie müssen also nichts in Ihre Sicherheitsregeln einlesen.

Wenn Sie mit Token arbeiten, beziehen Sie sich nicht auf das Sicherheitstoken selbst. Das ist ein verschlüsseltes Json-Objekt und die Inhalte sind in Sicherheitsregeln verfügbar.

Um zu verstehen, was hier vor sich geht, wollen Sie ein rudimentäres Verständnis von Tokens. Dies erfordert mindestens den Sicherheits-Quickstart von oben nach unten und den Abschnitt über < a href="https://www.firebase.com/docs/security/rule-expressions/auth.html"> auth-Variable von oben nach unten.

Im Abschnitt mit der Auth-Variablen finden Sie dieses Beispiel:

%Vor%

Beachten Sie, dass der Inhalt des Tokens app_user_id und isModerator ist. Sie können nun auf diese beiden Variablen in Sicherheitsregeln verweisen:

%Vor%

Sie können auch ein besseres Verständnis für Token entwickeln, indem Sie hier mit ihnen hantieren ; ermöglicht es Ihnen, Token zu erstellen und zu zerlegen, um zu sehen, was sich in ihnen befindet, und sie gegen Ihren Namespace zu validieren, um sicherzustellen, dass sie funktionieren.

    
Kato 06.03.2014, 15:07
quelle
1

Ihre Regeln müssen nur write auf false setzen, so:

%Vor%

Das "? auth = yourFireBaseSecret" in Ihrer Curl-Anfrage ermöglicht es Ihrem REST-Call, unabhängig von den Regeln zu gehen. Alle anderen Anfragen müssen dies respektieren und können nicht in Ihre Daten schreiben.

    
cleegp 22.05.2015 18:25
quelle

Tags und Links