我有兩個 reactjs 網站,一個用于客戶端用戶,一個用于管理員。我有用于資料訪問的 graphql api。目前,admin 正在使用 JWT,我們將更改為 firebase 身份驗證。
我已經使用 firebase 包實作了登錄和注冊。
這是創建用戶功能。所以它作業并且可以成功登錄。但我的問題是如何區分管理員用戶和客戶用戶。我看到 setCustomUserClaims 僅適用于 firebase-admin。我可以知道如何在firebase中設定角色以及正確的設定方法是什么?
function register(name, email, password) {
return createUserWithEmailAndPassword(auth, email, password).then((res) => {
const auth = getAuth();
updateProfile(auth.currentUser, {
displayName: name
}).then(() => {
// Profile updated!
// ...
}).catch((error) => {
// An error occurred
// ...
console.log(error.message);
});
});
}
uj5u.com熱心網友回復:
自定義宣告絕對是在 Firebase Auth 中添加角色的最簡單方法,但您需要在云功能或任何安全服務器環境中使用Admin SDK 。
我看到那
setCustomUserClaims只是為了firebase-admin
setCustomUserClaims()用于設定自定義宣告,但您始終可以使用getIdTokenResult()客戶端 SDK 中的函式讀取它們。
const { claims } = await getIdTokenResult(auth.currentUser)
因此,如果您的 GraphQL API 在您自己的服務器上運行,您可以在那里安裝 Firebase 管理員并向 Firebase auth 用戶添加自定義宣告。
或者,您可以將用戶角色存盤在Firestore等資料庫或您自己的資料庫中,然后從那里讀取用戶角色。資料庫中存盤角色的一個問題是,如果需要,您無法從其他服務(如 Firebase 存盤)的安全規則中訪問它們,但可以使用自定義宣告。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/465287.html
標籤:反应 火力基地 firebase 身份验证 火力基地管理员
