簡體   English   中英

一個 Gmail 帳戶可以訪問 Firebase Admin SDK 中具有不同自定義聲明的兩個應用嗎

[英]Can One Gmail Account Has Access to Two Apps with different Custom Claims in Firebase Admin SDK

我想詢問 Firebase Admin SDK,以防在兩個相關應用程序之間使用自定義聲明:服務器應用程序和客戶端應用程序。 他們每個人都有不同的特點。 它們都放置在同一個 Firebase 項目中,但使用不同的集合。 這兩個應用程序都使用具有不同 Node.js 文件的 Cloud Function。 我將所有 Cloud Function 代碼放在 Visual Studio Code 的不同項目中。

例如,在 Server App 的代碼中:

 claims = { serverFeatureA: true, serverFeatureB: false, }; admin.auth().setCustomUserClaims(uid, claims);

這是針對客戶端應用程序的:

 claims = { clientFeatureA: true, clientFeatureB: false, }; admin.auth().setCustomUserClaims(uid, claims);

我擔心的是,如果同一個 Gmail 帳戶同時使用這兩個應用程序並且 Cloud Function 將其聲明分配給不同的功能? 如果用戶先訂閱客戶端,然后訂閱服務器,這是否會覆蓋客戶端應用程序中編寫的舊聲明並且僅存在於服務器應用程序中? 任何幫助都會很棒。 謝謝。

由於您只有一個Firebase 項目(這意味着在此 Firebase 項目的身份驗證服務中聲明的一組用戶),因此當您的一個 Cloud Functions 更新分配給此項目用戶的自定義聲明時,它會覆蓋之前設置的自定義聲明此用戶(獨立於先前設置聲明的雲功能)。

您可以做些什么來避免這種情況,即在您的每個 Cloud Functions 中檢查要更新的用戶是否不持有其他配置文件的聲明。 換句話說,在將服務器應用程序聲明分配給特定用戶之前,您檢查該用戶是否沒有客戶端應用程序聲明,反之亦然。

執行此操作的代碼取決於您的 Cloud Function 觸發器類型和代碼。

暫無
暫無

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

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