Ungültige JWT, beim Versuch, eine Verbindung zu Google Oauth für google API
War ich versucht, eine Verbindung zu Google-API über OAuth über JWT, aber ich bekomme immer diese Fehlermeldung:
{ "error": "invalid_grant", "error_description": "Ungültige JWT: Token muss eine kurzlebige token und in einem angemessenen Zeitrahmen" }
In meinem JWT calim ich die iat-aktuelle Zeit minus 1970-01-01 in Sekunden und die exp zu iat + 3600, also ich weiß nicht warum ich bin noch immer dieser Fehler. Wenn jemand die Antwort weiß bitte sagen meeeeee!
Machen Sie Ihre eigenen JWT behaupten? mal muss die aktuelle Uhrzeit NTP - en.wikipedia.org/wiki/Network_Time_Protocol
danke für die Antwort, ich habe die Zeit auf UTC-Zeit und jetzt bin ich immer eine ungültige Signatur Fehler, würden Sie wissen, was ich falsch mache?
$sig = hash_hmac('sha256', utf8_encode($base64encodedHeaderAndPayload), "-----BEGIN PRIVATE KEY - -----\n privatekey \n-----END PRIVATE KEY - -----\n"); $Signatur = base64url_encode($sig);
Hinweis: ein Hinweis habe ich auch schon versucht, um meine eigene JWT token jemals geschafft, es zum laufen zu bringen stackoverflow.com/questions/33438494/... ich benutze geklebt mit Googles client library. Welche Sprache verwenden Sie, vielleicht können Sie wählen neben der client library-code.
danke für die Antwort, ich habe die Zeit auf UTC-Zeit und jetzt bin ich immer eine ungültige Signatur Fehler, würden Sie wissen, was ich falsch mache?
$sig = hash_hmac('sha256', utf8_encode($base64encodedHeaderAndPayload), "-----BEGIN PRIVATE KEY - -----\n privatekey \n-----END PRIVATE KEY - -----\n"); $Signatur = base64url_encode($sig);
Hinweis: ein Hinweis habe ich auch schon versucht, um meine eigene JWT token jemals geschafft, es zum laufen zu bringen stackoverflow.com/questions/33438494/... ich benutze geklebt mit Googles client library. Welche Sprache verwenden Sie, vielleicht können Sie wählen neben der client library-code.
InformationsquelleAutor andy | 2016-04-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht sicher, ob Sie jemals zum laufen bekommen, aber die folgenden einfachen Schritte arbeitete für mich über die PHP-Funktion openssl_sign():
Hey @Joseph Shih, ich habe ähnliches Problem, mein Fehler ist
Invalid JWT Signature.
. Können Sie Ihre POST-Anfrage. Ich denke, dass ich Probleme mitgrant_type
im request-body.eine ungültige JWT Signatur-Fehler bedeutet, dass die Signatur konnte nicht authentifizieren Sie sich mit Ihrem $jwtHeader und $jwtClaim. Verwenden Sie die richtige ISS (E-Mail-Adresse des service-Konto), und verwenden Sie den privaten Schlüssel von Ihrem API-Konsole. Auch, denken Sie daran, Sie müssen base-64-Kodierung der Signatur (wie im Beispiel oben).
Never mind @JosephShih ich war in der Lage, es zu beheben. Ich gepostet, hier die Antwort: stackoverflow.com/questions/48106432/... Trotzdem danke für die Antwort 🙂
InformationsquelleAutor Joseph Shih
Musst du eine korrekte Ablauf der Zeit, für die das token, wenn Sie diese Fehlermeldung sehen. Beispiel:
InformationsquelleAutor lxknvlk
Ich hatte das gleiche Problem, ich löste es, indem Sie die Synchronisierung meiner VMs, Zeit zu haben, die richtige ist, mit einem öffentlichen NTP-Server:
InformationsquelleAutor Sergio Gonzalez
Wenn Sie die Schritte unter HTTP/Rest hier:
https://developers.google.com/identity/protocols/OAuth2ServiceAccount#formingheader, wirst du sehen, dass Sie die service-Konten für die Unterstützung von RSA, SHA-256, und Sie scheinen zu verwenden HMAC.
Ich habe gerade herausgefunden, dass die Verwendung von hash in PHP nicht mit einem geheimen Schlüssel, also sollte ich wohl noch hash_hmac, und ich bin nicht immer ein Ergebnis :/
Es scheint Unterzeichnung Bibliotheken erstellen spec-konform JWTs. Beispiel: github.com/namshi/jose
InformationsquelleAutor user2705223