我在PHP中构建了一个平台,使用户可以创建自己的网站。为了将网站所有者与Google服务(特别是Google Analytics)相关联,我为网站用户创建了一个Google应用程序,以便连接到他们的帐户。这是通过Google的API V3 / OAuth2完成的。
流程是:
问题:
每个应用程序可以拥有的刷新令牌数量限制为25。 当第26个用户登录(并接收新的刷新令牌)时,第一个刷新令牌变为非活动状态。
错误讯息:
error: 1401351409|4794
[Error refreshing the OAuth2 token, message: '{ "error" : "invalid_grant" }']
我在向API发出刷新令牌请求后得到了这个。
有没有办法克服这个限制? 有没有其他方法可以得到预期的结果?
答案 0 :(得分:1)
根据我对Google的OAuth2文档的理解,这是您遇到的问题:
<强> Google OAuth2 强>
每个Google用户帐户目前有25个令牌限制。如果是用户 帐户有25个有效令牌,下一个身份验证请求成功, 但是在没有任何东西的情 用户可见的警告。
我非常确定刷新令牌对于客户端ID /用户ID /应用程序范围组合是唯一的。当您获得刷新令牌时,您应该将该特定用户的刷新令牌存储在数据库中,而不是生成新的令牌。当用户的原始访问令牌到期时,您的应用程序应该从数据库中提取用户的相应刷新令牌,并为下次使用生成新的访问令牌/刷新令牌。
如果流量正确,则不应接近达到刷新令牌限制。
希望这有帮助!