使用Firebase在客户端上创建具有角色的用户

时间:2018-07-08 05:34:09

标签: firebase firebase-authentication

我正在尝试使用Firebase进行首次登录和身份验证,我需要三个角色

学生,老师,管理员

我的NavBar应该呈现不同的内容取决于登录用户的角色,并且我已经看到有一种将角色与firebase https://firebase.google.com/docs/auth/admin/custom-claims结合使用的方法

但是,如果我没有误会,它应该在后端(我使用的是Spring)上完成

我应该在客户端的每时每刻都知道角色,我该怎么做?

1 个答案:

答案 0 :(得分:1)

您无法在客户端上创建自定义声明。这将是一个安全漏洞,因为用户只需修改您的代码即可让自己访问任何内容。您需要为此在服务器上use the Admin SDK

还有accessing custom claims on the client的文档。您在Firebase身份验证用户对象上使用getIdTokenResult()。例如:

firebase.auth().currentUser.getIdTokenResult()
  .then((idTokenResult) => {
     // Confirm the user is an Admin.
     if (!idTokenResult.claims.admin) {
       // Show admin UI.
       showAdminUI();
     } else {
       // Show regular user UI.
       showRegularUI();
     }
  })
  .catch((error) => {
    console.log(error);
  });