2016-03-23 17 views
34

thisと同じエラーが発生しています。 私の場合、アプリがGoogle Cloud Client API経由でファイルをアップロードしようとしているときに起こっています。私は、トークンは、サービスアカウントのJSONファイルを読んでいるロードし、PHPでCURLOPT_HTTPHEADERに添付方法トークンは短命のトークンでなければなりません。

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 

。過去1ヶ月間は正常に機能していたので、Googleが承認の方法を変更したと推測しています。

&に直面した人は誰ですか?

+0

私は何もしませんでしたが、解決されました。誰でも考えがある? – wataru

+1

ここに私の答えです[ここにリンクの説明を入力](http://stackoverflow.com/a/36332476/2548058) –

+2

@MichaelMishKisilenko明らかに、同期化されていない内部クロックが原因です。あなたを共有していただきありがとうございます! – wataru

答えて

75

私は、ほぼ同じ時間に同じ問題につまずいたので、私はグーグルの一般的なバグを期待しますが、ここで自分のコンピュータ上で何が起こったかである:

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 

は貧しいの同期で私の場合に発生しましたコードが実行されたコンピュータの時計が5分遅れていた(内部時計のバッテリに障害があるため)。私は、手動でコンピュータの内部時刻を正しい時刻に変更したときに再び動作を開始しました。

この溶液をhereをmentionnedが、完全なエラーメッセージ

+1

私のサーバーの時計が時々同期していないのを見たので、これはおそらく答えです。私はそれが – wataru

+1

を感謝しますこれは解決策であるように思われます。具体的には、使用しているDockerコンテナは、システムクロックが正常であっても、破棄されたクロックを持っています。 – plowman

+0

はここでまったく同じ問題を抱えていました。私のコンピュータの時計は5分同期していませんでした。 –

8

と私は同じ問題を持っていなかった、私は私のサーバーが8分遅れで表示されたことがわかりました。私はNTPサーバーを構成し、魔法のように解決されました。

+1

答えてくれてありがとう。ちょうど 'ntpdate ntp.ubuntu.com'が私のために働いてくれてありがとう!ありがとう! –

+0

これは、サーバーの時刻が常に一致していることを確認するにはどうしたらよいですか?私は同じエラーが発生し続ける... – gustavoanalytics

3

同じ問題が発生しました。...手動でコンピュータの時計を現在の時刻にリセットします....問題が解決しました。

+0

私はXcodeでその問題に直面していたが、時間をリセットした後、私のプロジェクトは正常に実行された。 – Zulqarnain

0

私は、これを数時間切り刻んだ。私もthis questionを投稿しました。私は、いくぶん明白であったはずのものを見落としてしまったことが分かります。私のdevサーバはLinux仮想マシンです。私のVM上の時計は私のローカルシステムクロックより8日遅れていました。私のローカルクロックが正しい間、私はVMが数日遅れていたという事実を見落としました。うまくいけば、これは不本意な時間を節約することができます。