如何使用 Firebase IdToken 为 Google 驱动器生成 OAuth 访问权限?

How to use Firebase IdToken to generate OAuth Access for Google drive?

更新

在我的 Nativescript-Angular 应用程序中,我正在使用 @nativescript/firebase 插件,它使用 Firebase 身份验证并且在我提供的范围内 https://www.googleapis.com/auth/drive.

firebase
        .login({
          type: firebase.LoginType.GOOGLE,
          googleOptions: {
            scopes: ["email", "https://www.googleapis.com/auth/drive"],
          },
        })
        .then((user: firebase.User) => {
          //Firebase ID Token
          const idToken = value.providers[0].token;
        })
        .catch((err) => {
          console.log(err);
        });

在 运行 应用程序时,它要求用户登录以及用户同意 Google 驱动器访问 。身份验证成功后,它 returns 一个 Firebase Id 令牌。

在下一步中,应用程序需要访问用户的 Google 驱动器。据我所知,Google Drive API 需要 OAuth 访问令牌,而应用程序具有 Firebase 令牌。

https://www.googleapis.com/drive/v3/files

我的问题是: 如何生成能够访问用户 Google 驱动器的 OAuth 访问令牌? 或者 对此有任何替代解决方案吗?

据我所知,FirebaseNativeScript 库的 getAuthToken() 调用 returns ID 令牌。

Firebase 身份验证用户不一定有权访问 Google 驱动器。相反,您需要使用用户的 OAuth2 令牌(用于登录 Firebase 的同一令牌)来访问 Google 云端硬盘。在步骤中,您需要:

  1. 请求访问云端硬盘所需的其他 OAuth 范围,
  2. 捕获 OAuth 令牌(不是 Firebase 令牌)并且
  3. 使用 that 访问云端硬盘。

如果您已经尝试过,请编辑您的问题以显示您已经尝试过的内容。

已解决。基本上问题是 @nativescript/firebase 插件没有返回 accessToken。我已经自定义了现在返回 accessToken 的插件,我可以在 Google API 上授权它。