oauth2client.client.HttpAccessTokenRefreshError: invalid_grant: Invalid JWT

oauth2client.client.HttpAccessTokenRefreshError: invalid_grant: Invalid JWT

我正在 Raspberry PI 上使用 Google Cloud Vision API。当我在我的家庭(首次访问云帐户)网络上使用它时,它工作正常,但如果我从不同的网络访问 API,它会引发令牌刷新错误。我已经使用 NTP 同步了时间,但没有任何帮助。

详细错误:

oauth2client.client.HttpAccessTokenRefreshError: 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.

invalid_grant: Invalid JWT: Token must be a short-lived token (60 minutes) and in a reasonable timeframe.

这是由于执行代码的计算机时钟同步不良造成的,延迟 5 分钟或更长时间。该错误意味着令牌无效并且无效,因为 PI 上的时间与实际时间不同。我知道你说你正在检查 NTP,但我建议你也检查时区。

我知道这是一个 PI,所以调试可能是有限的,但尝试输出你的 id 令牌并解密它的 jwt 你应该能够看到 iat 和 exp 值。它可能会帮助您了解它认为的时间。