oauth - 如何检测 OAuth2 刷新 token 何时过期

标签 oauth oauth-2.0 google-oauth onedrive refresh-token

访问 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 响应。此时需要重定向用户重新认证:

enter image description here

关于oauth - 如何检测 OAuth2 刷新 token 何时过期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57383523/

相关文章:

android - Android 2.3.3 上带有授权 header 和 CORS 的 Ajax GET 请求

OAuth secret 和桌面应用程序

python - Stocktwits API - 从脚本获取访问 token ,无需用户交互

java - 在 Web 服务器上代表 Java 中的用户使用 google api

node.js - 使用 GMail SMTP OAuth2 身份验证的 Nodemailer 正在获取 'Invalid status code 401'

linkedin 的 PHP oauth

oauth - 如何使用 Gnome Keyring 存储 OAuth 凭证

oauth-2.0 - 如何从 OAuth2.0 返回已批准的范围

oauth-2.0 - 如何获取服务帐户的承载访问 token

android - Google OAuth 登录页面 'cancel' 和 'accept' 按钮从 8 月 22 日起不再启用