google oauth2 刷新令牌何时过期?

Posted

技术标签:

【中文标题】google oauth2 刷新令牌何时过期?【英文标题】:When will a google oauth2 refresh token expired? 【发布时间】:2018-04-07 07:38:18 【问题描述】:

我所说的过期是由于某个时间跨度已经过去而过期(不是因为用户已撤销访问权限或因为用户已请求新的刷新令牌)

我做了一些研究,但没有一个引用官方谷歌文档(我也找不到有效的谷歌文档)


还有一些问题说因为时间而永不过期

Do Google refresh tokens expire?

https://community.fitbit.com/t5/Web-API-Development/Invalid-or-expired-refresh-tokens/td-p/1048159

而其他人说它会过期(有人说 14 天,其他人说 60 天)

这个说14天Why do refresh tokens expire after 14 days

这个说60天https://blog.box.com/blog/oauth2-update-longer-lived-refresh-tokens/

这个说“很长时间”(没有确切时间)https://medium.com/@bantic/more-oauth-2-0-surprises-the-refresh-token-1831d71f4af6


由于某个要求,我需要一个永不过期的刷新令牌,因为时间流逝,所以我需要一个在20年后仍然可以使用的刷新令牌左右

如果刷新令牌在那之前过期,那么我需要改变我的方法,所以我需要知道它们是否过期

【问题讨论】:

【参考方案1】:

首先让我先说现在有一种方法可以获得一个保证 20 年后可以工作的刷新令牌。届时技术将发生变化。另请注意,我从 Google oauth 服务器的角度回答每个服务器设置不同的不同公司可能对刷新令牌何时到期有不同的规则。如果您想要某种行业标准,最好查看RFC for oauth

刷新令牌可能会过期。

    如果用户删除了您的访问权限。 一个用户最多可以为您的应用程序拥有 50 个刷新令牌。这意味着,如果他们对您的应用程序进行 50 次身份验证,那么当他们再次对其进行身份验证时,您将拥有 50 个未完成且正在工作的刷新令牌,第一个令牌将过期,您将再次获得一个可以工作的新令牌。 如果刷新令牌在三到六个月内未使用,它将过期。 我看到谷歌的一些问题是大量刷新令牌突然过期,这发生在几年前的秋天。我从来没有通过谷歌验证问题是什么。我猜这是一个时间变化问题,因为它发生在每个人都在那里改变时间的那一周。

基本上所有这一切意味着,如果您的刷新令牌已过期,无论您的代码应该能够再次请求用户的访问权限。

【讨论】:

所以这意味着只要没有重大的技术变化(例如弃用或停止 google oauth2 服务)、问题(例如错误、攻击、系统故障等),用户就不会创建新的刷新令牌,用户不会撤销访问权限,并且我每个月至少使用一次刷新令牌来获取新的访问令牌,那么刷新令牌实际上将永远存在,对吗? 是的,我已经让它们运行了两年,但还没有过期。请记住,它可能会发生 如果它的使用寿命至少为 2 年,那么它可能满足要求。谢谢 至少我没有任何已经挂了那么久的东西 :) 理论上,只要你每个月使用一次,它们就应该无限期地工作。 检查访问令牌或刷新令牌是否有效的最佳方法。是用它。如果返回错误,请尝试请求访问令牌,您有答案。

以上是关于google oauth2 刷新令牌何时过期?的主要内容,如果未能解决你的问题,请参考以下文章

OAuth 2.0 刷新令牌是不是完全过期?

如何识别OAuth令牌是否已过期?

何时用刷新令牌交换访问令牌

OAuth 2.0 访问令牌已过期,刷新令牌不可用

Google API OAuth2 刷新令牌突然被撤销

GoogleAPI oauth2 刷新令牌在 1 小时后过期