【问题标题】:Google Analytics OAuth2 refresh tokens limitGoogle Analytics OAuth2 刷新令牌限制
【发布时间】:2014-08-12 17:15:44
【问题描述】:

我用 PHP 构建了一个平台,使用户能够创建自己的网站。为了将站点所有者连接到 Google 服务(特别是 Google Analytics),我为我的站点用户创建了一个 Google 应用程序以连接到他们的帐户。这是通过 Google 的 API V3/OAuth2 完成的。

流程是:

  1. 用户使用其 Google 帐户登录 Google Analytics。
  2. 平台会自动将 Google Analytics sn-p 添加到网站
  3. 该平台允许离线访问 Google Analytics 以查看站点统计信息并将其显示在统计信息屏幕中。

问题:

每个应用程序可以拥有的刷新令牌数量限制为 25 个。 当第 26 个用户登录(并收到新的刷新令牌)时,第一个刷新令牌变为非活动状态。

错误信息:

error: 1401351409|4794 [Error refreshing the OAuth2 token, message: '{ "error" : "invalid_grant" }']

我在向 API 发出刷新令牌请求后得到这个。

有没有办法克服这个限制? 有没有其他方法可以得到想要的结果?

【问题讨论】:

    标签: php google-analytics oauth-2.0 google-analytics-api


    【解决方案1】:

    根据我从 Google 的 OAuth2 文档中了解到的情况,这是您遇到的问题:

    Google OAuth2:

    目前每个 Google 用户帐户有 25 个令牌的限制。如果一个用户 账户有 25 个有效令牌,下一次认证请求成功, 但悄悄地使最旧的未完成令牌无效,没有任何 用户可见的警告。

    我很确定刷新令牌对于客户端 ID/用户 ID/应用程序范围组合是唯一的。当您获得刷新令牌时,您应该将该特定用户的刷新令牌存储在数据库中,而不是生成新令牌。当用户的原始访问令牌过期时,您的应用程序应该从数据库中提取用户的相应刷新令牌并生成新的访问令牌/刷新令牌以供下次使用。

    使用正确的流程,您不应接近达到刷新令牌限制。

    希望这会有所帮助!

    【讨论】:

    • 我将刷新令牌保存在数据库中。问题是我有超过 25 个用户,每个用户都在发出登录请求。
    • 我相信限制是指您的用户可以拥有的刷新令牌的数量 - 而不是您的应用程序可以拥有的。如果我错了,请纠正我。
    猜你喜欢
    • 2021-06-13
    • 2016-08-03
    • 2014-11-25
    • 1970-01-01
    • 2021-08-27
    • 2022-06-19
    • 2013-08-30
    • 2017-04-20
    • 1970-01-01
    相关资源
    最近更新 更多