我正在开发一个应用程序,我需要访问多个谷歌日历。所有这些日历都来自不同的用户。现在我正在使用OAuth2进行同步。但据我了解,我每个客户端ID只能生成25个刷新令牌。
Note: Save refresh tokens in secure long-term storage and continue to use
them as long as they remain valid. Limits apply to the number of refresh
tokens that are issued per client-user combination, and per user across all clients,
and these limits are different. If your application requests enough refresh tokens
to go over one of the limits, older refresh tokens stop working.
根据建议,我在我的数据库中保留刷新令牌。但我的问题是,如果我有更多的客户想要同步他们的日历怎么办?有没有办法忽视这个极限?当然没有。我现在想到的只是创建更多客户端ID。有什么建议吗?
答案 0 :(得分:34)
每个用户(客户端用户)50个,如客户用户。不是client_id。对于验证您的应用程序的每个人,您可以让他们最多验证50次。您收到的每个刷新令牌都可以使用。 50日之后,第一个将停止工作。我认为它们也将工作长达6个月,如果它已经使用了6个月,它将失效。
您可以让尽可能多的人使用您的客户端(client_id),因为您愿意对您进行身份验证。你不会有任何问题。
来自Google Oauth2文档here
令牌到期
您必须编写代码以预测授予的令牌可能不再有效的可能性。由于以下原因之一,令牌可能会停止工作:
•用户已撤销访问权限。
•令牌已有六个月未使用。
•用户更改了密码,令牌包含Gmail范围。
•用户帐户已超过一定数量的令牌请求。
目前每个客户端的每个用户帐户限制为50个刷新令牌。如果达到限制,则创建新令牌会自动使最旧的令牌无效而不会发出警告。此限制不适用于服务帐户。
用户帐户或服务帐户在所有客户端上可以拥有的令牌总数也有更大的限制。大多数普通用户不会超过此限制,但开发人员的测试帐户可能会超出此限制。
如果您需要授权多个程序,计算机或设备,一种解决方法是将每个用户帐户授权的客户端数量限制为15或20.如果您是Google Apps管理员,则可以创建其他管理员用户并使用它们来授权一些客户。
问题:你在哪里找到这个?我想向谷歌报告它有点令人困惑
注意:在安全的长期存储中保存刷新令牌并继续 只要它们仍然有效,就使用它们。限制适用于数量 刷新按客户端用户组合发布的令牌,以及 所有客户端的每个用户,这些限制是不同的。如果你的 应用程序请求足够的刷新令牌来覆盖其中一个 限制,旧的刷新令牌停止工作。