如何检测 OAuth2 刷新令牌何时过期

mar*_*kli 3 oauth oauth-2.0 google-oauth onedrive refresh-token

访问 Google-Drive 时,访问令牌可能会过期,我们可以使用刷新令牌来获取新的访问令牌。不过,刷新令牌本身停止工作或过期的可能原因有很多,请参阅:

https://developers.google.com/identity/protocols/OAuth2#expiration

所以我的问题是,如果刷新令牌在 6 个月后过期会发生什么,我如何检测它?刷新访问令牌的请求是否因403 禁止而失败,或者是否返回包含错误消息的 JSON,或者其他内容?

不幸的是很难找到这方面的任何信息,要测试它必须等待 6 个月......

解决方案:

感谢 Gary Archers 的回答,我可以使用无效的刷新令牌来产生这种情况,这是我得到的响应,也许它可以帮助其他人:

HTTP-status-code: 400
JSON:
{
  "error": "invalid_grant",
  "error_description": "Bad Request"
}
Run Code Online (Sandbox Code Playgroud)

Gar*_*her 7

我见过的几乎所有实现都会返回一个已知的错误代码“invalid_grant”,您可以检查一下。它看起来像这样,服务器返回带有error字段和可选.json 的 JSON 响应error_description。此时您需要重定向用户以重新进行身份验证:

在此输入图像描述