Google API刷新代币不符合'增量范围'请求

时间:2016-05-02 17:27:08

标签: google-api google-authentication

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

问题是当我们请求新范围(增量)时,Google似乎正确地将范围添加到用户(如果我们从前端检查授予的范围,它显示正确的列表),但是如果我们检查访问范围令牌只会列出个人资料以及我们刚要求的任何内容。

因此,如果某人启用了日历,那么该刷新令牌将具有' profile'和'日历',但如果他们再启用云端硬盘,新的刷新令牌将只有'个人资料'并且'开车'而不是'日历'。对于我们的Drive工作人员来说这尤其成问题,因为它会在尝试使用有效的刷新令牌构建用户驱动器但产生无效范围时会产生一系列可疑错误。

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

提示/技巧/陷阱/等?

1 个答案:

答案 0 :(得分:1)

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

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