簡體   English   中英

使用 Firebase 身份驗證驗證 ID 令牌

[英]Verifying ID tokens with Firebase Authentication

我們正在開始開發 Web 應用程序,並考慮使用 Firebase 身份驗證來處理我們的注冊流程。 但是,我們不確定 ID 令牌驗證的工作原理。 似乎可以使用 Firebase 領域之外的令牌驗證用戶。 我們正在考慮在 Google Kubernetes Engine 上安裝一個 Node.js 應用程序——據我所知,它沒有與 Firebase 身份驗證集成。

Firebase 提供了有關如何使用 Firebase Admin SDK 驗證 ID 令牌的示例

// idToken comes from the client app (shown above)

admin.auth().verifyIdToken(idToken)
  .then(function(decodedToken) {
    var uid = decodedToken.uid;
    // ...
  }).catch(function(error) {
    // Handle error
  });

我的問題是 Firebase 是否必須調用其服務器以驗證每個用戶請求的 ID 令牌(這會增加延遲),或者是否長時間緩存驗證令牌所需的加密密鑰– 這就是我假設它起作用的方式。

當您調用verifyIdToken ,Admin SDK 使用公鑰解碼令牌並驗證簽名是否有效。 它從 Google 的服務器下載此密鑰,但它會緩存 24 小時(因為它幾乎不會改變)。 驗證令牌后,它會檢查令牌是否已被撤銷,這需要再次調用 Firebase 身份驗證服務器。 每次調用verifyIdToken發生此請求。

您可以對照源代碼進行檢查。

我有一個類似的用例,我嘗試在我的應用中使用 Firebase 身份驗證。 一旦用戶登錄(然后由后端對每個請求進行相應的驗證),是否需要在每個請求中傳遞 idToken ?

編輯:看起來 Hiranya 在這里回答了這個問題: Firebase Token Authentication using Django

暫無
暫無

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

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