Php 令牌必须是短期令牌,并且在合理的时间范围内

Php 令牌必须是短期令牌,并且在合理的时间范围内,php,google-api,google-api-php-client,Php,Google Api,Google Api Php 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文件,并将其附加到PHP中的CURLOPT_HTTPHEADER。在过去的一个月里,它确

我犯了和你一样的错误。 在我的例子中,它发生在应用程序试图通过谷歌云客户端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文件,并将其附加到PHP中的
CURLOPT_HTTPHEADER
。在过去的一个月里,它确实工作正常,所以我猜谷歌改变了授权方式


有人遇到并解决了这个问题吗?

我几乎在同一时间偶然发现了同样的问题,所以我预计谷歌会出现一个通用的bug,但下面是我的计算机上发生的情况:

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分钟的延迟(由于内部时钟的电池故障)。当我手动将计算机的内部时间更改为正确的时间时,它又开始工作了


提到了这个解决方案,但没有完整的错误消息

我也有同样的问题,我发现我的服务器延迟了8分钟。我配置了NTP服务器,奇迹般地解决了遇到的相同问题。

手动将我的计算机时钟重置为当前时间。

问题解决了。

我被困在这几个小时。我甚至还发了帖子。事实证明我忽略了一些本该显而易见的事情。我的开发服务器是一个Linux虚拟机。我的虚拟机上的时钟比我的本地系统时钟晚了8天。因此,虽然我的本地时钟是正确的,但我忽略了一个事实,即我的虚拟机延迟了几天。希望这能为心不在焉的人节省一些时间。

我也有类似的问题,我的工作一直失败,错误如下:

  File "/usr/local/lib/python2.7/site-packages/google/oauth2/_client.py", line 59, in _handle_error_response
    error_details, response_body)
google.auth.exceptions.RefreshError: ('invalid_grant: Invalid JWT: Token must be a short-lived token (60 minutes) and in a reasonable timeframe. Check your iat and exp values and use a clock with skew to account for clock differences between systems.', u'{\n  "error" : "invalid_grant",\n  "error_description" : "Invalid JWT: Token must be a short-lived token (60 minutes) and in a reasonable timeframe. Check your iat and exp values and use a clock with skew to account for clock differences between systems."\n}')
2018-05-1713:01:01:  API CALL iOS intra day: module failed.

实际根本原因是系统时间与服务器不同步。我已经刷新了同步时间的ntp服务器,问题得到了解决。

我在尝试访问google cloud big query API时遇到了类似的问题。调整我的系统时钟并允许windows 10自动设置时间和时区解决了问题。

这听起来很明显,但对于那些因集装箱化应用程序而出现错误并在此处结束的用户,请确保过期时间
exp
在发出时间
iat

之后

我在使用集装箱应用程序中的令牌时也遇到了同样的问题。重新启动Docker桌面(Windows)为我做到了这一点


在第一次遇到这个问题之前,我已经进行了几周的设置。

对于那些使用vagrant的用户,请将ssh放到您的框中并运行
sudo服务ntp stop&&sudo ntpd-gq&&sudo服务ntp

我在使用Windows Linux子系统(WSL)时遇到了这个问题。我所有的WSL图像都是以过去设置的日期运行的,这表明Windows从睡眠状态恢复时会出现问题


我通过重新启动WSL进行了修复,
WSL--shutdown

我什么都没做,但问题解决了。有人有想法吗?这是我的答案@MichaelMishKisilenko显然是内部时钟不同步造成的。谢谢你的分享!这主要是你的客户端上与时间相关的问题。我的android emulator上有这个问题。它的时间按时区设置不正确。这可能是答案,因为我看到我的服务器的时钟有时不同步。我很感激这似乎是解决办法。具体来说,我使用的Docker容器的时钟坏了,尽管我的系统时钟很好。这里也有同样的问题。我电脑的时钟有5分钟不同步。感谢您的回答我在运行单元测试时收到了这个问题,但忘记了我也修补了为我解决这个问题的时间(是的,我有mock,但我在测试它时没有mock来检查凭据)。我电脑的时钟响了几个小时。重新调整了它,错误消失了。我用Xcode遇到了这个问题,但在重置时间后,我的项目成功运行了。这刚刚运行了
ntpdate ntp.ubuntu.com
,谢谢!因此,这种情况不断发生,我如何确保服务器时间始终匹配?我不断地犯同样的错误…在我尝试了所有的方法之后,我找到了你的答案,而且它对我有效!嗯。我也是。可能是因为我在休眠我的机器。因此,最终会将dockersame与集装箱化的.net核心应用程序混淆