我正在尝试使用Firebase进行首次登录和身份验证,我需要三个角色
学生,老师,管理员
我的NavBar应该呈现不同的内容取决于登录用户的角色,并且我已经看到有一种将角色与firebase https://firebase.google.com/docs/auth/admin/custom-claims结合使用的方法
但是,如果我没有误会,它应该在后端(我使用的是Spring)上完成
我应该在客户端的每时每刻都知道角色,我该怎么做?
答案 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); });