Google API invalid_grant -错误请求错误



我试图通过使用

调用https://www.googleapis.com/oauth2/v4/token获得访问令牌
grant_type: 'refresh_token',
client_id: GOOGLE_OAUTH_CLIENT_ID,
client_secret: GOOGLE_OAUTH_CLIENT_SECRET,
refresh_token: refreshToken

我确定clientId/secret是正确的。因为对于某些刷新令牌-我确实获得访问令牌,对于其他令牌,我确实获得令牌被撤销的通知,但在某些情况下,我获得

error: '400 - {"error":"invalid_grant","error_description":"Bad Request"}'

由于在某些情况下我确实收到成功/令牌撤销,我假设它消除了NTP问题。

有什么想法可能是错的,在哪里看?

可能是您的访问令牌无效。这可能是由于许多原因造成的,例如自创建令牌以来用户的帐户已停用,或令牌被撤销或过期,请确保始终使用最新的刷新令牌。

时间对于令牌来说是至关重要的,确保您与谷歌NTP服务器在一起。如果有必要,用谷歌NTP同步你的时间。另外,不正确/不完整的刷新令牌也会导致无效的授权。为了请求刷新令牌,您必须首先请求脱机访问。访问令牌的工作时间为一小时,但最好在剩下五分钟时刷新,以避免出现时钟混乱的问题。

每次需要访问api时请求访问令牌也可能导致无效的授权,从而淹没认证服务器。Google做了一些更改,如果用户更改了他们的密码,那么授予某些范围访问权限的刷新令牌将被撤销。以下是我在StackOverflow上找到的答案和一篇博客文章,其中解释了可能发生此错误的一些原因。

也可以尝试从https://www.googleapis.com/oauth2/v4/tokenURI更改为https://oauth2.googleapis.com/token。前一个URI应该继续工作,但后一个URI是新的默认值。查看这个github

最新更新