我正在将已安装的应用程序迁移到OAuth2并遇到此paragraph:
请注意,刷新令牌的数量会有限制 发行;每个客户端/用户组合一个限制,每个用户另一个限制 所有客户。您应该长期保存刷新令牌 存储并继续使用它们,只要它们仍然有效。如果你的 应用程序请求太多的刷新令牌,它可能会遇到这些 限制,在这种情况下,旧的刷新令牌将停止工作。
根据建议,应用程序存储刷新令牌,但用户可以通过在多个设备上使用它来请求多个刷新令牌。我想知道:
客户/用户组合限制是什么?
如果用户超越“跨所有客户”限制,哪个client_id刷新令牌会被撤销?
除非用户超出这些限制或撤消限制,否则给定的刷新令牌永远不会过期?
提前感谢您的帮助。
答案 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限制。请自行测试以确认这一点。