我有一个Web API,Angular应用程序和android应用程序正在使用它。场景是用户将使用google Oauth 2.0登录到我的angular应用程序/ Android应用程序。我有一个特定的模块,用户可以在其中上传文件。我必须将文件存储在用户的Google驱动器中。我怎样才能做到这一点?请说明工作流程,例如从何处获取访问令牌,如何将其传递给我的API,如何使用该令牌访问驱动器API。
答案 0 :(得分:0)
我想引导您进入Browser Quickstart article,该指南向您展示如何从Web浏览器访问Drive 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。
执行此操作的方法有多种,实施,优缺点与您的决定大不相同。
我个人将在后端执行所有身份验证,并仅将前端用作您信息的代理。
我希望这个解释对您有所帮助。祝你好运!