簡體   English   中英

如何使用Firebase IdToken生成OAuth Access for Google drive?

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

更新

在我的 Nativescript-Angular 應用程序中,我使用@nativescript/firebase插件,它使用 Firebase 身份驗證,在 scope 中,我提供了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 驅動器 身份驗證成功后,它會返回一個 Firebase Id 令牌。

在下一步中,應用程序需要訪問用戶的 Google Drive。 據我所知,Google Drive API 需要 OAuth 訪問令牌,而應用程序具有 Firebase 令牌。

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

我的問題是:如何生成能夠訪問用戶的 Google 驅動器的 OAuth 訪問令牌? 或者是否有任何替代解決方案?

據我getAuthToken() ,FirebaseNativeScript 庫的getAuthToken()調用返回一個 ID 令牌。

Firebase 身份驗證用戶不一定有權訪問 Google Drive。 相反,您需要使用用戶的 OAuth2 令牌(與用於登錄 Firebase 的令牌相同)來訪問 Google Drive。 在步驟中,您需要:

  1. 請求訪問 Drive 所需的其他 OAuth 范圍,
  2. 捕獲 OAuth 令牌(不是 Firebase 令牌)並且,
  3. 使用來訪問雲端硬盤。

如果您已經嘗試過,請編輯您的問題以顯示您嘗試過的內容。

已經解決了。 基本上問題出在不返回 accessToken 的@nativescript/firebase插件上。 我已經自定義了插件,該插件現在返回我能夠在 Google API 上授權的 accessToken。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM