Google API OAuth访问令牌上下文。我应该在全局,按文档还是按用户保存它?

问题描述 投票:1回答:1

我编写了一个Web应用程序,该应用程序将处理来自多个用户的Google电子表格(我使用Google_Service_Sheets :: DRIVE_FILE范围,因此每个文件都是单独请求的)。因此,当用户授予对第一个文件的访问权限时,我会将Google OAuth提供的访问令牌保存到我的内部存储中,以将其用于将来的请求。将新文件添加到我的应用时,应该仅提示用户访问一次。目前,我在单个电子表格上对其进行了测试,并且效果很好。

但是当用户向我的应用程序添加更多电子表格时会发生什么?这些文件中的每个文件都有单独的令牌,还是所有令牌都相同?

[当另一个拥有不同Google帐户的用户提供对他的文档的访问权限时,会发生什么情况?每个令牌会有所不同吗?

所以问题是我应该在哪里将令牌存储为用户属性或文档属性?

google-sheets google-api google-oauth2
1个回答
0
投票

我编写了一个Web应用程序,该应用程序将处理来自多个用户的Google电子表格(我使用Google_Service_Sheets :: DRIVE_FILE范围,因此每个文件都是单独请求的)。因此,当用户授予对第一个文件的访问权限时,我会将Google OAuth提供的访问令牌保存到我的内部存储中,以将其用于将来的请求。将新文件添加到我的应用时,应该仅提示用户访问一次。目前,我在单个电子表格上对其进行了测试,并且效果很好。

首先,用户授予您访问其驱动器帐户上的所有文件的权限,而不仅仅是其中一个。其次,访问令牌仅可保存一小时,因为它即将过期,因此不需要。

但是当用户向我的应用程序添加更多电子表格时会发生什么?这些文件中的每个文件都有单独的令牌,还是所有令牌都相同?

每个用户都有一个不同的访问令牌,授予您访问其驱动器帐户上所有文件的权限。更多工作表不会改变这一点。

并且当另一个具有不同Google帐户的用户提供对其文档的访问权限时,会发生什么?每个令牌会有所不同吗?

是,每个用户的访问令牌都不同。

所以问题是我应该在哪里将令牌存储为用户属性或文档属性?

您不应该保存访问令牌,您可能希望保存刷新令牌,但前提是您希望在用户不在线时访问他们的驱动器帐户。在这种情况下,应该将每个令牌与拥有它的用户相关联地保存起来,以免向其他用户显示其他人的数据。

© www.soinside.com 2019 - 2024. All rights reserved.