Firebase Authentication (multiple types of users)

我的梦境 提交于 2021-02-20 04:23:05

问题


i am working on a react.js project which authenticate from firebase but i have 3 multiple type of user's in it (super Admin,vendor admin,vendor staff) with different privileges. how can i authenticate them from firebase and get to know this is my venor admin or vendor staff etc ???? because firebase just authenticate single type of user!


回答1:


You can control access via custom claims using the Firebase Admin SDK on your own server of through Cloud Functions for Firebase.

Set claims server side for a specific bid with a method like this:

admin.auth().setCustomUserClaims(uid, {admin: true}).then(() => {
// The new custom claims will propagate to the user's ID token the
// next time a new one is issued.
});

Then set up your database with a structure that separates admin and vendor admin content:

/
   /admin
      /data for admins here
   /vendorAdmin
      / data for vendor admins here
   /staff
      // data for staff here, or perhaps this data is accessible to all since the admins may need access to it.

In the Firebase Console, customize the rules to restrict these locations to those who include the proper claim:

{
  "rules": {
    "admin": {
      ".read": "auth.token.admin === true",
      ".write": "auth.token.admin === true",
    }
    "vendorAdmin": {
      ".read": "auth.token.vendoradmin === true",
      ".write": "auth.token.vendoradmin === true",
    }
    "staff": {
      ".read": "auth.token.staff === true",
      ".write": "auth.token.staff === true",
    }
  }
}

This is a simplified example, so you'll have to customize it further to meet the needs of your app.




回答2:


You can maintain a users table in your database, and every time you sign up a user just add them there as well, using the uid.



来源:https://stackoverflow.com/questions/50070240/firebase-authentication-multiple-types-of-users

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!