我遇到与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文件,并将其附加到PHP中的CURLOPT_HTTPHEADER
。它确实在过去一个月内正常运行,因此我猜测Google改变了授权方式。
有没有人面对&解决了这个问题?
答案 0 :(得分:95)
我几乎在同一时间偶然发现了同样的问题,所以我期待谷歌的一般错误,但这是我的电脑上发生的事情:
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 :(得分:11)
我有同样的问题,我发现我的服务器延迟了8分钟。我配置了NTP服务器并神奇地解决了它
答案 2 :(得分:6)
对于那些在容器化应用中遇到该错误并最终在此处出现的人,
在容器化应用中使用令牌时,我遇到了同样的问题。重新启动Docker Desktop(Windows)帮了我这个忙。
在第一次遇到该问题之前,我已经进行了数周的设置。
答案 3 :(得分:4)
遇到同样的问题....手动将计算机的时钟重置为当前时间....问题已解决。
答案 4 :(得分:1)
我被困了好几个小时。我甚至发布了this question。事实证明,我忽略了一些本来应该是显而易见的事情。我的开发服务器是一个Linux虚拟机。我的VM上的时钟比本地系统时钟晚了8天。因此,虽然我的本地时钟是正确的,但我忽略了我的VM延迟几天的事实。希望这可以节省心不在焉的时间。
答案 5 :(得分:1)
我在尝试访问Google云端查询API时遇到了类似的问题。调整我的系统时钟并允许Windows 10自动设置时间和时区解决了问题。
答案 6 :(得分:1)
对于那些使用无业游民的人,将ssh插入框并运行sudo service ntp stop && sudo ntpd -gq && sudo service ntp
答案 7 :(得分:0)
我遇到了类似的问题,我的工作仍然失败,并出现以下错误:
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服务器,它同步了时间,问题得到了解决。
希望它有所帮助。
答案 8 :(得分:0)
出现此错误是因为我更改了Mac的时钟,但没有更改时区。我恢复了时钟时间并将其更改为我当前所在的时区后,对其进行了修复。
答案 9 :(得分:0)
听起来很明显,但是请确保到期exp
是在时间iat
发出之后。
答案 10 :(得分:0)
在将Windows子系统用于Linux(WSL)时遇到了这个问题。我所有的WSL映像都以过去设置的日期运行,https://github.com/microsoft/WSL/issues/4245表示Windows从睡眠状态恢复时会出现问题。
我通过重新启动WSL wsl --shutdown