访问 Google-Drive 时,访问 token 可能会过期,我们可以使用刷新 token 来获取新的访问 token 。但是,有许多可能的原因导致刷新 token 本身停止工作或过期,请参阅:
https://developers.google.com/identity/protocols/OAuth2#expiration
所以我的问题是,如果 refresh-token 在 6 个月后过期,会发生什么情况,我如何检测到它?刷新访问 token 的请求是否因 403 forbidden 而失败,或者它是否返回包含错误消息或其他内容的 JSON?
不幸的是,很难找到关于此的任何信息,并且要对其进行测试必须等待 6 个月...
解决方案:
感谢 Gary Archers 的回答,我可以使用无效的刷新 token 来产生这种情况,这是我得到的响应,也许它可以帮助其他人:
HTTP-status-code: 400
JSON:
{
"error": "invalid_grant",
"error_description": "Bad Request"
}
最佳答案
我见过的几乎所有实现都会返回一个已知错误代码“invalid_grant”,您可以检查该代码。它看起来像这样,服务器返回一个带有 error
字段和可选的 error_description
的 JSON 响应。此时需要重定向用户重新认证:
关于oauth - 如何检测 OAuth2 刷新 token 何时过期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57383523/