如何从我的Web API访问Google Drive API

问题描述 投票:0回答:1

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

angular google-drive-api asp.net-core-webapi access-token google-oauth2
1个回答
0
投票

我想引导您到Browser Quickstart article,向您展示如何从Web浏览器访问Drive API。

如果您希望第三方API(自己的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和/或AccessToken。

有多种方法可以实现,实现,优缺点与您的决定大相径庭。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.