没有看到完整的错误消息
Invalid_grant {Message here}
这很难帮助,但根据我的经验,通常是由以下原因之一引起的。
刷新令牌过期,应用程序未投入生产。
刷新令牌可以有多种原因expire https://developers.google.com/identity/protocols/oauth2#expiration目前最常见的一种如下。
一个 Google Cloud Platform 项目,其配置了 OAuth 同意屏幕
外部用户类型和发布状态为“测试”时,将颁发刷新令牌,该令牌将在 7 天后过期。
解决方法是转到同意屏幕上的谷歌开发者控制台并将您的应用程序设置为生产,然后您的刷新令牌将停止过期。
invalid_grant:无效的 JWT
{ “error”: “invalid_grant”, “error_description”: “无效的 JWT:令牌必须是短期令牌(60 分钟)且处于合理的时间范围内。检查您的 iat 和 exp 值,并使用有偏差的时钟来解释系统之间的时钟差异。” }
您的服务器时钟与 NTP 不同步。 (解决方法:检查服务器时间,如果不正确请修复。)
invalid_grant:代码已被兑换
意味着您正在获取已使用的身份验证代码并尝试为其获取另一个访问令牌/刷新令牌。验证码只能使用一次,并且会过期,因此需要尽快使用。
Invalid_grant:错误的请求
通常意味着您用来刷新访问令牌的客户端 ID 和机密。不是用于创建您正在使用的刷新令牌的令牌。
始终存储最近的刷新令牌。
请记住始终存储最新的刷新令牌。单个用户只能拥有 50 个未使用的刷新令牌,最旧的刷新令牌将过期。根据您使用的语言,刷新访问令牌后可能会向您返回新的刷新令牌。此外,如果您多次请求用户同意,那么您将获得不同的刷新令牌。
用户撤销访问权限
如果用户撤销了您在其 Google 帐户中的访问权限,您的刷新令牌将不再有效。
用户在 Gmail 范围内更改了密码。
如果您的刷新令牌是使用 Gmail 范围创建的,并且用户更改了密码。您的刷新令牌将过期。
Links
Oauth2 Rfc 文档中 invalid_grant 错误rfc6749 https://www.rfc-editor.org/rfc/rfc6749.html
无效的授权
提供的授权(例如授权
代码、资源所有者凭据)或刷新令牌是
无效、过期、撤销、与重定向不匹配
授权请求中使用的 URI,或颁发给
另一个客户。