将范围限制为Google服务帐户的Google Auth JWT客户端中的单个文件

问题描述

我正在使用服务帐户生成访问令牌,以访问Google驱动器中的某些工作表。该访问令牌将发送给客户端用户,并使用该用户访问我的工作表。但是,不同的用户可以访问不同的工作表,我希望他们防止使用相同的访问令牌访问其他工作表。目前,该服务帐户可以访问我的应用使用的所有文件

为了生成访问令牌,我使用googleapis的{​​{1}}模块。我将Firebase云功能用作Node版本10的后端

这是我的代码

google.auth.JWT

预先感谢

解决方法

如果服务帐户的权限授予令牌对文件夹中每个文件的完全访问权限,则这些令牌也将允许读取其他文档。我认为您可以解决此问题,方法是通过更改文件本身的权限而不是提供通用访问令牌来授予特定用户一组文档的权限。 Drive documentation的本页描述了如何在文件级别更改权限,并提供了一些Node.js示例。