【发布时间】:2021-02-16 21:18:04
【问题描述】:
我正在使用服务帐户来生成访问令牌以访问我的谷歌驱动器中的某些工作表。该访问令牌将发送给客户端用户,并使用该用户将访问我的工作表。但是不同的用户可以访问不同的工作表,我希望他们防止使用相同的访问令牌访问其他工作表。目前,服务帐号可以访问我的应用使用的所有文件。
为了生成访问令牌,我使用googleapis 的google.auth.JWT 模块。我使用 Firebase 云函数作为 Node 版本 10 的后端
这是我的代码,
try {
const jwtClient = new google.auth.JWT(
key.client_email,
null,
key.private_key,
['https://www.googleapis.com/auth/drive',], // drive scope
);
const accessToken = await jwtClient.authorize();
} catch (error) {
console.log(error)
res.status(500).json(error)
}
提前致谢
【问题讨论】:
-
检查 drive.file 范围认为它将仅限于应用程序本身创建的文件。
-
当前答案是正确的。您的模式是一种反模式:您将服务帐户的身份令牌发送到外部,任何人都可以代表服务帐户访问文档。您不知道谁访问了该文档,谁更改了它们……只有一条建议:不要那样做!
标签: google-api google-cloud-functions google-authentication service-accounts google-api-nodejs-client