2016-03-23 1 views
34

Ich habe den gleichen Fehler wie this. In meinem Fall passiert es, wenn die App versucht, eine Datei über die Google Cloud Client API hochzuladen.Token muss ein kurzlebiges Token sein und in einem vernünftigen Zeitrahmen

POST https://www.googleapis.com/oauth2/v4/token 
400 Bad Request 
Invalid JWT: Token must be a short-lived token and in a reasonable timeframe 

Wie ich das Token laden ein Service-Konto JSON-Datei zu lesen, und befestigen Sie es an CURLOPT_HTTPHEADER in PHP. Es hat in den letzten einem Monat richtig funktioniert, also vermute ich, dass Google die Art der Autorisierung geändert hat.

Hat jemand konfrontiert & das gelöst?

+0

Ich habe nichts getan, aber es ist gelöst. Hat jemand Gedanken? – wataru

+1

Hier ist meine Antwort [Link Beschreibung hier eingeben] (http://stackoverflow.com/a/36332476/2548058) –

+2

@MichaelMishKisilenko anscheinend die unsynchronisierte interne Uhr verursacht. Danke, dass du deine geteilt hast! – wataru

Antwort

75

ich auf das gleiche Problem bei ungefähr zur gleichen Zeit stolperte, so erwartete ich einen allgemeinen Fehler von Google, aber hier ist das, was auf meinem Computer geschehen war:

raise HttpAccessTokenRefreshError(error_msg, status=resp.status) 
oauth2client.client.HttpAccessTokenRefreshError: invalid_grant: Invalid JWT: Token must be a short-lived token and in a reasonable timeframe 

in meinem Fall durch eine schlechte Synchronisation verursacht wurde der Uhr des Computers, wo der Code ausgeführt wurde, der eine Verzögerung von 5 Minuten hatte (aufgrund einer fehlerhaften Batterie für die interne Uhr). Es begann wieder zu arbeiten, wenn ich die interne Zeit meines Computers manuell zu der richtigen änderte.

Diese Lösung here erwähnt wurde, aber nicht mit der vollen Fehlermeldung

+1

Es ist möglicherweise die Antwort, weil ich gesehen habe, dass die Uhr meines Servers manchmal nicht synchron ist. Ich schätze, dass – wataru

+1

Dies scheint die Lösung zu sein. Insbesondere der Docker-Container, den ich verwende, hat eine kaputte Uhr, obwohl meine Systemuhr in Ordnung ist. – plowman

+0

hatte genau das gleiche Problem hier. Die Uhr meines Computers war 5 Minuten nicht synchronisiert. Danke für die Antwort –

8

ich das gleiche Problem hatte, fand ich, dass mein Server um 8 Minuten verzögert wurde. Ich konfigurierte den NTP-Server und magisch wurde es gelöst

+1

gerade läuft 'ntpdate ntp.ubuntu.com' arbeitete für mich, danke! –

+0

Also das passiert weiter, wie kann ich sicherstellen, dass die Serverzeit die ganze Zeit übereinstimmt? Ich bekomme immer den gleichen Fehler ... – gustavoanalytics

3

Das gleiche Problem aufgetreten .... manuell zurücksetzen der Uhr meines Computers auf die aktuelle Zeit .... Problem gelöst.

+0

Ich war mit Xcode konfrontiert, aber nachdem ich die Zeit zurückgesetzt hatte, lief mein Projekt erfolgreich. – Zulqarnain

0

Ich war stundenlang ratlos. Ich habe sogar this question gepostet. Es stellte sich heraus, dass ich etwas übersehen hatte, was eigentlich offensichtlich sein sollte. Mein Dev-Server ist eine virtuelle Linux-Maschine. Die Uhr auf meiner VM war 8 Tage hinter meiner lokalen Systemuhr. Während meine lokale Uhr korrekt war, übersah ich die Tatsache, dass meine VM einige Tage verspätet war. Hoffentlich kann dies den Zerstreuten einige Zeit sparen.