我是Firebase的新用戶,我正嘗試創建用戶身份驗證。用戶對象具有:用戶名,電子郵件,全名,角色,密碼。使用Firebase進行基於角色的身份驗證
現在我希望能夠創造這些屬性的用戶和使用任何用戶名/電子郵件和密碼進行身份驗證。
認證後,我想檢查用戶的角色,以確定他們被允許訪問的我的應用程序的一部分。
我不知道如何去解決它,文檔主要只處理電子郵件和密碼。
我是Firebase的新用戶,我正嘗試創建用戶身份驗證。用戶對象具有:用戶名,電子郵件,全名,角色,密碼。使用Firebase進行基於角色的身份驗證
現在我希望能夠創造這些屬性的用戶和使用任何用戶名/電子郵件和密碼進行身份驗證。
認證後,我想檢查用戶的角色,以確定他們被允許訪問的我的應用程序的一部分。
我不知道如何去解決它,文檔主要只處理電子郵件和密碼。
Firebase目前僅支持電子郵件+密碼身份驗證,而不支持用戶名+密碼。 (當然,還有Facebook,Twitter,匿名等等)儘管如此,你仍然可以做你自己的定製認證。
你仍然可以在你提到的這些領域的數據庫中創建自己的用戶對象:(用戶名,電子郵件,全名,角色,密碼),但這些都是從火力的認證部分分開。這個過程,我會稱之爲「註冊」,這是由你來實施。
如果你想控制一下數據庫的部分不同的用戶可以訪問,那麼你在談論database rules。
如果您想要控制對應用程序本身的不同部分的訪問,那麼您只需要以此方式對其進行編碼。
您可以像這樣構建您的數據庫,使用它們的$uid
存儲每個用戶的信息,並保留每個用戶聲明的用戶名列表,以便您可以有一個寫入規則,防止覆蓋usernames
中已有的用戶名。
因此,註冊後,您需要使用FIRAuth
註冊電子郵件和密碼,然後完成後,您將獲得FIRUser
。然後,您可以使用uid
將用戶名,角色等寫入數據庫中的用戶位置,並在用戶名位置"usernames/$username": "$uid"
處單獨輸入用戶名。
您需要實施"users/$uid"
和"usernames/$username"
的寫入/驗證規則,以確保用戶名尚未被佔用。
{
"users": {
$uid: {
"username": "callam",
...
"role": "member"
}
},
"usernames": {
"callam": $uid
}
}
火力地堡剛剛推出了通過自定義用戶索賠ID令牌上基於角色的訪問支持:https://firebase.google.com/docs/auth/admin/custom-claims – bojeil