【问题标题】:Google Drive Access - Service Account or OAuth - To read/write user filesGoogle Drive Access - 服务帐户或 OAuth - 读取/写入用户文件
【发布时间】:2018-09-15 06:09:38
【问题描述】:

我有一个对文件执行操作的 .NET 控制台应用程序。我想允许客户让我们访问他们的 Google Drive 帐户,以便我们可以读取和写入文件。我们的控制台应用程序作为服务运行,因此用户无法与其交互并授权我们访问他们的 Google Drive 帐户。

我一直在考虑使用 Google 服务帐户进行应用程序级别的身份验证,直到我了解到服务帐户无权访问设置服务帐户的用户的 Google 云端硬盘文件夹。这种做法违背了目的,因为我希望访问的是客户的 Google Drive 帐户。

我看到 SO 成员 @pinoyyid 发布的解决方法 in this SO answer 可以使用 Google 的 Oauth2 Playground 生成刷新令牌,但我担心刷新令牌可能会过期,并且需要再次用户干预才能生成另一个一个。

另一个回复提到解决方案是创建服务帐户,然后与服务帐户共享用户的 Google 云端硬盘帐户。

Google 推荐的方法是什么?如何才能最好地访问 Google Drive 帐户,同时只要求所有者进行一次身份验证,同时允许他们随时撤消访问权限?

【问题讨论】:

    标签: google-api google-drive-api google-oauth


    【解决方案1】:

    服务帐户和存储的 OAuth 刷新令牌都是可行的方法。各有优缺点。

    服务帐户将在您的用户只需要授予对他们可以共享给 SA 的特定文件夹的访问权限的情况下工作。请注意,SA 创建的任何文件都归 SA 所有,并使用 SA 的配额。您不能“将用户的云端硬盘帐户共享给 SA”,您只能共享单个文件夹。

    存储 RT 是更宽松的选择。您不会使用我在您引用的答案中描述的 OAuth 操场,因为这对于要求用户进行操作来说太笨拙了。相反,您需要编写自己的注册/授权服务(您可以使用 AppEngine、Lambda 等 - 因此编写和托管并不难)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-12
      • 1970-01-01
      • 2018-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多