对于给定的客户端/用户组合,有多少刷新令牌Google API问题?

时间:2013-03-04 00:52:09

标签: google-oauth

我正在将已安装的应用程序迁移到OAuth2并遇到此paragraph

  

请注意,刷新令牌的数量会有限制   发行;每个客户端/用户组合一个限制,每个用户另一个限制   所有客户。您应该长期保存刷新令牌   存储并继续使用它们,只要它们仍然有效。如果你的   应用程序请求太多的刷新令牌,它可能会遇到这些   限制,在这种情况下,旧的刷新令牌将停止工作。

根据建议,应用程序存储刷新令牌,但用户可以通过在多个设备上使用它来请求多个刷新令牌。我想知道:

  • 客户/用户组合限制是什么?

  • 如果用户超越“跨所有客户”限制,哪个client_id刷新令牌会被撤销?

  • 除非用户超出这些限制或撤消限制,否则给定的刷新令牌永远不会过期?

提前感谢您的帮助。

3 个答案:

答案 0 :(得分:2)

限制正式为25。

https://developers.google.com/accounts/docs/OAuth2#expiration

There is currently a 25-token limit per Google user account. 
If a user account has 25 valid tokens, the next authentication request succeeds, 
but quietly invalidates the oldest outstanding token 
without any user-visible warning.

答案 1 :(得分:1)

实际号码不在公共领域。它可能是特定于服务的,可能会不时变化。参考:https://developers.google.com/analytics/devguides/config/mgmt/v3/mgmtAuthorization#helpme

根据我的理解,如果数字可以低至25,那么当用户从第26台机器登录时,第一台机器的帐户就会失效。

最好通过网络将刷新令牌存储在数据库中。

答案 2 :(得分:0)

@bazik有正确的数字,25但是......没有什么可以阻止这个数字在未来改变,所以不要依赖它

此外

如果用户超越“跨所有客户”限制,哪个client_id刷新令牌会被撤销?

最老的

除非用户超过这些限制或撤消限制,否则给定的刷新令牌永不过期? 永远不要把话说绝了。您的应用应该通过访问重新对话来处理这种可能性。

你确定你确实有问题吗? 我相信刷新令牌对于clientid / userid / scope组合是唯一的。如果您的所有设备都具有相同的clientid,我怀疑您将重新发布现有的刷新令牌,而不是新的令牌。所以你永远不应该接近25限制。请自行测试以确认这一点。