【问题标题】:How to access Google Drive APIs from my Web API如何从我的 Web API 访问 Google Drive API
【发布时间】:2019-11-15 00:58:59
【问题描述】:

我有一个 Angular 应用程序和一个 android 应用程序正在使用的 Web API。场景是用户将使用 google Oauth 2.0 登录到我的 Angular 应用程序/Android 应用程序。我有一个特定的模块,用户可以在其中上传文件。我必须将文件存储在用户的谷歌驱动器中。我怎样才能做到这一点?请解释工作流程,例如从哪里获取访问令牌、如何将其传递给我的 API、如何使用它来访问驱动器 API。

【问题讨论】:

    标签: angular google-drive-api asp.net-core-webapi access-token google-oauth


    【解决方案1】:

    我想引导您访问 Browser Quickstart article,它向您展示了如何从网络浏览器访问 Drive API。

    如果您希望您的第 3 方 API(您自己的)执行此访问,您需要在 Angular/Android 应用程序和您的自定义 API 之间共享您的应用程序配置。这是为了遵守Google Identity Platform guidelines for Cross-client tokens

    简而言之,这意味着,虽然您的前端和后端是分开的(在您看来),但用户应该作为一个实体与您的应用程序进行交互。

    通过在Google Cloud Platform 上设置项目(激活项目、同意屏幕、范围和库),您可以为您的应用程序创建不同的凭据。

    为了安全起见,您应该定义应用程序运行所需的最小访问量。这意味着,如果您只需要读取文件(例如),则不应请求允许您删除文件的权限。

    创建凭据后,您可以在前端和后端分别使用它们来访问所需的数据。您的用户将通过OAuth2.0 Authorization flow 获得指导。

    在此步骤中,您将获得一个短暂的 AccessToken(有过期日期)和一个 long-lived RefreshToken(很少过期)。

    当您从 API 请求信息时,您必须发送您的 AccessToken 以验证您的身份。当您的 AccessToken 过期时,您应该通过提供 RefreshToken 来请求一个新的。您应该对您的应用程序进行编码,以便在新的 AccessToken 过期时请求它。

    如果您想根据前端的登录信息从后端访问数据,那么您需要在与后端通信时共享此 RefreshToken 和/或 AccessTokens。

    有多种方法可以做到这一点,实施、利弊与您的决定有很大差异。

    就个人而言,我会在后端执行所有身份验证,并将前端用作您信息的代理。

    我希望这个解释对你有所帮助。祝你好运!

    【讨论】:

      猜你喜欢
      • 2021-05-04
      • 2015-06-15
      • 2017-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多