【问题标题】:Google API refresh tokens not honoring 'incremental scope' requestGoogle API 刷新令牌不遵守“增量范围”请求
【发布时间】:2016-08-27 13:18:37
【问题描述】:

我们有一个与许多 Google API(日历、联系人、驱动器)集成的网络应用程序。我们有一个集成面板,用户可以在其中有选择地检查on 每个集成。启用新集成后,我们会保存 Google 返回的新刷新令牌并将旧令牌标记为 inactive。到目前为止很棒。

问题是当我们请求一个新范围(增量)时,Google 似乎正确地将范围添加到用户(如果我们从前端检查授予的范围,它会显示正确的列表),但是如果我们从访问权限中检查范围令牌它只会列出配置文件和我们刚刚请求的任何内容。

因此,如果有人启用日历,则该刷新令牌将具有“个人资料”和“日历”,但如果他们随后启用了云端硬盘,则新的刷新令牌将只有“个人资料”和“云端硬盘”,而不是“日历”。这对于我们的 Drive 工作人员来说尤其成问题,因为它会在尝试使用有效的刷新令牌但范围无效的情况下构建用户的 Drive 时产生大量错误。

在后端,我在兑现code 之前使用setIncludeGrantedScopes(true) 方法,据我所知,前端正在做它应该做的(它似乎有预期的范围),但刷新令牌不包含在内。

提示/技巧/陷阱/等等?

【问题讨论】:

    标签: google-api google-authentication


    【解决方案1】:

    所以,事实证明这是一个相当简单的解决方案,但只记录在一个地方:当前端请求一个额外的范围时,它必须发送所有当前范围。

    如果不这样做,将导致返回的刷新令牌仅代表授权请求中包含的范围,而 app 将按预期递增地获得范围。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-21
      • 2016-09-20
      • 2020-09-16
      • 1970-01-01
      • 2016-01-26
      • 2016-01-05
      • 1970-01-01
      相关资源
      最近更新 更多