0

Ich möchte Firebase-Tokens auf der Serverseite mit this third party library in C++ überprüfen. Aber ich habe einige Missverständnisse: Für die Token-Validierung Ich öffentliche und private Schlüssel zur Verfügung stellen müssen, Firebase says that:Missverständnis in der Tokenverifizierung der Firebase

einem der öffentlichen Schlüssel entsprechen aufgelistet bei https://www.googleapis.com/robot/v1/metadata/x509/[email protected]

Aber wenn ich geöffnet Die Verbindung, ich konnte öffentliche und private Schlüssel nicht finden, die ich für die Tokenüberprüfung übergeben sollte.

Also, wie kann ich öffentliche und private Schlüssel für Token überprüfen?

Antwort

1

Sie benötigen nur den öffentlichen Schlüssel, um einen Firebase ID Token und JWT im Allgemeinen zu überprüfen. Dieser Link enthält das öffentliche Objekt json object (nennen wir es publicKeysObject). Sie erhalten das „Kind“ -Feld in der JWT-Header und dann den öffentlichen Schlüssel erhalten wie folgt: publicKeysObject [kidFromJWT]

Überprüfen Sie die Firebase Admin node.js SDK Open Source-Implementierung für Details: https://github.com/firebase/firebase-admin-node/blob/master/src/auth/token-generator.ts

+0

Vielen Dank für Ihre Antwort und Entschuldigung für die Verzögerung. Ok, aber ich habe zwei Fragen: [Validatoren brauchen geheime Schlüssel] (https://github.com/pokowaka/jwt-cpp#validating-tokens), wenn ich richtig verstanden habe, also, was wir als privaten Schlüssel weitergeben sollten? Und was sollten wir mit dem öffentlichen Schlüssel tun, den wir von 'publicKeysObject [kidFromJWT]' bekommen? Ich meine, ich verstehe diesen Fluss nicht: Wir müssen den öffentlichen Schlüssel verwenden, der mit kid übereinstimmt, z. Wenn wir Kid "99bf5a385a7babdab5 ..." haben, dann sollten wir den entsprechenden öffentlichen Schlüssel verwenden, ok, aber mit dem, was wir vergleichen müssen? Bitte fügen Sie einige Klarstellungen in Ihrer Antwort hinzu. –

+1

Das Gihub-Repo, das ich im Lieferumfang hatte, gibt Ihnen alle Details, wie der Flow funktioniert. Private Schlüssel sind privat. Sie sind nicht dazu gedacht, den Firebase Auth-Server zu verlassen. Der Wert von 'publicKeysObject [kidFromJWT]' wird der öffentliche Schlüssel sein, um das ID-Token zu validieren. Es ist dieser Teil: "----- BEGIN CERTIFICATE ----- ... END CERTIFICATE ----- \ n" Sie benötigen den öffentlichen Schlüssel und die ID-Token-Zeichenfolge, um ihre Signatur zu validieren. Vielleicht ist diese Bibliothek hilfreich: https://github.com/madf/jwtxx – bojeil

+0

Danke, ich fand 'jwtxx' nützlicher für mich. Außerdem habe ich jetzt ein anderes verwandtes Problem mit der Firebase, bitte, [überprüfen Sie es] (https://stackoverflow.com/questions/45426837/get-users-phone-number-from-c-using-firebase). –