我有一個帶有 node.js 后端 api 的顫振應用程式。我正在使用 firebase Auth 進行身份驗證。它現在的作業方式(我不知道這是標準的)是用戶向firebase auth發送請求以登錄/注冊。jwt 被存盤在顫振應用程式中,然后它將該 firebase jwt 發送到我的 API,它驗證它是一個有效的令牌firebase.auth().verifyIdToken(),我的 API 通過使用自定義資訊創建的新 jwt 發送 firebase firebase.auth().createCustomToken(...)。
在我的 API 發送的每個回應之前,它會檢查自定義 jwt 是否在 15 分鐘后創建。如果是,它會重新創建一個新的自定義 jwt。如果它自最初創建以來已過去 7 天,它將注銷用戶。
問題是,我看不到在服務器上重新生成 Firebase 身份驗證令牌的方法。這意味著用戶每小時都必須重新登錄。
我覺得我把事情復雜化了,但我不確定這樣做的更好設計。有標準嗎?我怎樣才能讓它變得更好,怎樣才能讓用戶在 60 分鐘后不必重新登錄?
uj5u.com熱心網友回復:
createCustomToken()當您擁有第三方身份驗證系統但您想使用 Firebase 身份驗證登錄您的用戶時,將使用由創建的自定義令牌。
問題是,我看不到在服務器上重新生成 Firebase 身份驗證令牌的方法。這意味著用戶每小時都必須重新登錄。
您無需在服務器上執行任何操作。每次您需要呼叫您的 API 時,您都可以使用getIdToken()來獲取用戶的 ID 令牌。
var token = await FirebaseAuth.instance.currentUser().getIdToken();
這將回傳用戶的當前令牌,如果它已過期,那么它將是一個重繪 的令牌。然后,您可以將結果傳遞給您的 API。無需自己在任何地方顯式存盤令牌。
每當您發出 API 請求時,流程可能很簡單:
- 使用獲取用戶的 ID Token
getIdToken() - 在您的 API 請求中傳遞此令牌
- 使用驗證它
verifyIdToken()并回傳回應。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/452891.html
標籤:节点.js 火力基地 验证 firebase 身份验证 后端
