【发布时间】:2020-07-21 09:16:38
【问题描述】:
我使用 Google 云端硬盘作为存储设备。一个GD中有很多文件。此 GD 包含多个用户的文件。当某些用户想要访问他的文件时,我会为特定文件生成访问令牌。但是,此访问令牌可用于列出 GD 上的所有文件,包括其他文件。我想限制 Google Drive 上的 files.list API。有什么方法可以禁用 files.list API? 我使用以下代码获取刷新令牌以对文件进行只读访问
public static async Task<string> generateReaderRefreshToken(string clientID, string clientSecret)
{
string[] scopes = new string[] { DriveService.Scope.DriveReadonly };
ClientSecrets secrets = new ClientSecrets
{
ClientId = clientID,
ClientSecret = clientSecret
};
UserCredential crdls = await GoogleWebAuthorizationBroker.AuthorizeAsync
(secrets,
scopes,
"user",
CancellationToken.None);
return crdls.Token.RefreshToken;
}
【问题讨论】:
-
如果您与每个用户共享他应该有权访问的文件,然后让他以编程方式访问该文件并以自己的身份进行身份验证呢?
-
@ziganotschka 每个用户都应该有 gmail 帐户。这不好
-
您也可以考虑使用只能读取/列出与服务帐户明确共享的文件的服务帐户。
-
@ziganotschka 在我的例子中,有一个应用程序可以生成读/写访问令牌来查看或上传客户端应用程序的文件。我对服务帐户不太了解,但它可以解决我的问题吗?
-
@DaImTo 我已编辑。该代码用于生成刷新令牌,后来用于生成只读访问令牌
标签: c# google-api google-drive-api google-oauth google-api-dotnet-client