我正在Java平台上构建与Google API的集成。我需要代表用户同时访问日历作为发送邮件。该应用程序是Web服务器应用程序。我正在使用Google API Client Library for Java
我已关注并阅读Using OAuth 2.0 to Access Google APIs上的文档。我遵循授权代码流文档,能够获取代码并更改访问和刷新令牌。使用访问令牌访问API也有效。我使用DataStoreFactory,DataStore和StoredCredential的实现来保留刷新令牌。此实现将凭据存储在数据库中。我还阅读了Incremental authorization
要实施增量授权,请完成请求访问令牌的正常流程,但请确保授权请求包含以前授予的范围。这种方法可以让您的应用避免管理多个访问令牌。
简而言之,我的问题是:我可以根据存储的令牌派生以前授予的范围吗?
据我所知,数据存储只有知识所有者的知识。在我的情况下,由用户的ID识别。和凭证的内容。 我希望SDK存储的某个范围附加到令牌。因此,当我需要获得范围的授权时,我可以检查我们是否有一个可以访问该范围的令牌。如果我们不这样做,我们可以尝试获取一个。如果我们已经拥有该用户的令牌,我们需要知道他们授予访问权限的范围,因此我们可以使用增量授权来获取授权范围集合的新组合令牌。
另一种选择是分别存储每个范围的标记,但问题仍然是如何识别数据存储区中的范围,因为我只能提供id和值。