我有一個專案經理的應用程式,有3個角色(管理員 - 工程師 - 技術人員),我想使 管理員在新用戶可以通過發送OTP(一次性密碼)來驗證fielbase之前批準他們注冊。 這樣,沒有管理員的允許,任何人都不能在firestore上創建一個新賬戶。 我正在使用flutter 2.2和Firebase電子郵件/密碼認證。
uj5u.com熱心網友回復:
我的方法是在一個單獨的集合中為每個用戶提供相關的偏好。你可以讓你的登錄函式檢查userId.isApproved是否為真,如果是,你就繼續。否則,你會將他們注銷,并將他們重定向到一個頁面,說 "該用戶未被批準"
。uj5u.com熱心網友回復:
本質上,你想做的是設定基于角色的訪問控制(RBAC)。
這里有一個解決方案,可能適合你的使用情況。 你可以按照這里的說明進行操作。如何在 Firebase 3.x 中禁用注冊以禁用注冊并僅允許 admin-sdk 創建帳戶。一旦用戶提出申請(也許是通過創建一個新的 Firestore 檔案),管理員就可以查看他們的申請,并使用管理員 sdk 來創建一個新的帳戶并通知用戶。
對于RBAC系統來說,更常見的解決方案是用自定義宣告來控制訪問。
1.一個onCreate云函式觸發器將潛在的新用戶通知給你的管理員(例如將一個檔案添加到Firestore集合)。
2.然后管理員查看并將這些用戶分配給管理員、工程師或技術角色/使用管理員SDK的自定義宣告。
3.你在整個Firebase服務(Firestore、RTDB、Storage、Functions)中使用這些自定義宣告來控制他們在整個專案中的訪問。
4.如果管理員希望拒絕該用戶,他們可以使用管理員系統來洗掉該賬戶。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/308580.html
標籤:
上一篇:F#中串列的元素加法
下一篇:強制驗證注釋提供一個訊息
