我正在尝试使用 Firebase 进行首次登录和身份验证,我需要三个角色
学生、教师、管理员
我的导航栏应该根据登录用户的角色呈现不同的内容,我已经看到有一种方法可以将角色与 firebase 一起使用 https://firebase.google.com/docs/auth/admin/custom-claims
但是如果我没有误解它,它应该在后端完成(我正在使用 spring)
我应该在客户端的每一刻都知道这个角色,我该怎么做?
不能在客户端上创建自定义声明。 这将是一个安全漏洞,因为用户只需修改代码即可访问任何内容。 为此,您需要在服务器上使用管理员 SDK。
还有用于访问客户端上的自定义声明的文档。 您可以在 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); });