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

2022-08-30 08:57:44

我遇到了与此相同的错误。在我的情况下,当应用程序尝试通过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

有没有人面对并解决了这个问题?


答案 1

我几乎在同一时间偶然发现了同样的问题,所以我预计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分钟(由于内部时钟的电池故障)。当我手动将计算机的内部时间更改为正确的时间时,它再次开始工作。

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


答案 2

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


推荐