当前位置: 首页 > 知识库问答 >
问题:

如何检测OAuth2刷新令牌过期

许曦
2023-03-14

当访问Google-Drive时,访问令牌可能过期,我们可以使用刷新令牌获得新的访问令牌。但是,有许多可能的原因,即刷新令牌本身停止工作或过期,请参见:

https://developers.google.com/identity/protocols/oauth2#过期

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

不幸的是,很难找到任何关于这一点的信息,并测试它必须等待6个月...

解决方案:

多亏了Gary Archers的回答,我可以用无效的刷新令牌产生这种情况,这是我得到的回应,也许这对其他人有帮助:

HTTP-status-code: 400
JSON:
{
  "error": "invalid_grant",
  "error_description": "Bad Request"
}

共有1个答案

柴兴贤
2023-03-14

我所见过的几乎所有实现都返回一个已知的错误代码'INVALID_GRANT',您可以检查它。您可以通过在发送刷新令牌授予消息时向刷新令牌添加字符来测试这一点。请参阅我的博客文章的第31步

 类似资料:
  • google oauth2刷新令牌何时过期? 我所说的过期是指过期是因为经过了某个时间跨度(不是因为用户已撤销访问权限或用户已请求新的刷新令牌) 我做了一些研究,没有一个引用官方的谷歌文档(我也找不到一个有效的谷歌文档) 其他一些问题表示,由于时间,它从未过期: 谷歌刷新令牌过期了吗? https://community.fitbit.com/t5/web-api-development/inva

  • 我对oauth2中的刷新令牌有点困惑。如它所说的访问令牌限制了黑客可以使用用户凭证的1小时的时间窗口,刷新令牌是万岁令牌,可以用来重新创建访问令牌。 我很困惑,如果有人从cookie中窃取了访问令牌,他也可以窃取刷新令牌,并可以使用刷新令牌创建新的访问令牌,因为我在JQuery中有ajax请求(客户端)

  • 我们决定使用OAuth2从Hazelcast共享会话切换到无状态JWT身份验证/授权,并发现了一个不适合我们下面描述的基础结构的问题。 因此,我们有多个独立的系统,可以通过直接链接访问,即mysite.com/scs1和mysite.com/scs2。 每个scs都有自己的UI和后端,但是“会话”(通过无状态JWT授权实现)必须在多个scs之间有效。 OAuth2授权服务器是一个专用服务器(UAA

  • 下面的代码使用Google oauth2机制登录用户。我们需要在用户离线时处理用户日历的更新,所以我们最终需要“刷新令牌”。grantOfflineAccess()的结果是否返回刷新令牌(在下面,我可以看到response.code包含一个可能是刷新令牌的值)? 我如何获得一个刷新令牌,可以用来(服务器端)创建新的访问键,以便离线访问用户的谷歌日历?

  • 请求你分享你的想法。 提前道谢。

  • 我以前在一个OAuth2应用程序中工作过,其中的逻辑是在旧的访问令牌过期后通过刷新令牌生成新的访问令牌。 如果访问令牌在30分钟后过期,然后您只需要传入刷新令牌(但没有重新生成),那么刷新令牌的意义是什么?