2016-03-23 2 views
34

У меня такая же ошибка, как и у this. В моем случае это происходит, когда приложение пытается загрузить файл через Google Cloud Client API.Токен должен быть кратковременным токеном и в разумные сроки

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 

Как загрузить маркер читает JSon файла сервис-счета, и прикрепить его к CURLOPT_HTTPHEADER в PHP. Он работал правильно в течение последнего месяца, поэтому я предполагаю, что Google изменил способ авторизации.

Кто-нибудь сталкивался с & решил это?

+0

Я не делал ничего, кроме решения. У кого-нибудь есть мысли? – wataru

+1

Вот мой ответ [введите описание ссылки здесь] (http://stackoverflow.com/a/36332476/2548058) –

+2

@MichaelMishKisilenko, по-видимому, вызывает несинхронизированные внутренние часы. Спасибо, что поделились с вами! – wataru

ответ

75

я наткнулся на тот же вопрос примерно в то же время, так что я ожидал общий баг Google, но вот что случилось на моем компьютере:

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 упоминалось, но не с полным сообщением об ошибке

+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. Часы на моей виртуальной машине были на 8 дней позади моих местных системных часов. Поэтому, пока мои местные часы были правильными, я упустил из виду тот факт, что моя VM задержалась на несколько дней. Надеюсь, это может сэкономить время от времени.

Смежные вопросы