谷歌Api刷新令牌澄清

时间:2016-08-07 15:02:37

标签: android oauth-2.0 access-token gmail-api google-oauth2

我获得了Access Token&使用发布请求从Android应用程序刷新令牌,我已经读过刷新令牌永不过期的地方&然后我发现有25个刷新令牌的限制,

Google Developer Doc中的含义是什么:

  

"注意:在安全的长期存储中保存刷新令牌并继续使用它们>只要它们仍然有效。限制适用于每个客户端 - 用户组合以及所有客户端的每个用户发布的刷新令牌数量,并且这些限制是不同的。如果您的应用程序请求足够的刷新令牌>超过其中一个限制,则较旧的刷新令牌将停止工作。"

  1. 限制适用于刷新令牌>获取访问令牌操作?
  2. 限制适用于提示用户>获取刷新令牌操作?
  3. 这意味着用户可以在25 Device Max上使用Google Api。 ? &安培;如果用户在+25设备上使用相同的帐户会怎样?

    我计划拥有一个后台服务,一旦启动,将使用保存的刷新令牌自动获取访问令牌,以确保始终有一个有效的令牌,

    感谢您的澄清

2 个答案:

答案 0 :(得分:1)

如果您继续阅读此Google OAuth2 document的令牌过期部分,则可以看到所需的答案。 Google指出了应用程序架构中需要考虑的几个关键事项:

  • 每个客户端+用户发布刷新令牌。这意味着对于给定的应用程序,每个客户每个用户可以获得25个刷新令牌。

    • 在您的应用程序代码中将您授权的客户端数量限制为15或20,以防止丢弃先前为该特定客户端用户发布的刷新令牌(最早丢弃的先前)

    • 一旦超过25的阈值,刷新令牌开始从给定客户端的可用刷新令牌的尾端开始下降

  • 阈值不适用于您可能希望用于没有面向客户端UI的后端应用程序的服务帐户。这些通常是服务器端唯一的应用程序,可自动执行以下流程:数据传输,数据同步/协调等......

我会查看上面链接中提供的用例示例和文档,以便更好地了解如何解决相应应用类型的问题:Web服务器,客户端或已安装。

此外,如果他们的客户端库(在上面的链接页面底部提供),我强烈建议使用一个,因为这应该有助于简单实现。

答案 1 :(得分:0)

  1. 这不是问题。如果未使用刷新令牌for six months,它将变为无效,但理论上可以无限期地使用刷新令牌获取新的访问令牌。

  2. 这是主要问题。如果您将刷新令牌存储在用户的设备上,并且用户由于某种原因有26个设备,则第一个设备上的刷新令牌将在您获得第26个设备后变为无效。

  3. 最后,当刷新令牌由于某种原因停止工作并重新提示用户时,最好有一些回退代码。用户可能不会使用该设备六个月,他可能会revoke the app's access或因任何其他原因而停止工作。