多角色身份验证Firebase Web

时间:2018-02-13 18:00:35

标签: javascript firebase web-applications firebase-authentication

我想根据用户的身份对用户进行身份验证。例如,我有3种类型的角色:普通用户,高级用户和管理员。每种类型的用户在登录时都会被重定向到特定页面。

我只根据官方文档设法对一种类型的用户进行简单的身份验证。 我想知道如何注册具有不同角色的用户,然后将每个用户登录到特定页面。

1 个答案:

答案 0 :(得分:0)

最简单的方法来控制每个用户根据预先存在的" Admin"和" Premium"用户可能会使用自定义声明。

如果您只是使用标准的Firebase登录信息,那么执行此操作的方法将使用Admin SDK

如果您想在注册时验证用户,则您希望使用custom login system来控制注册。您也可以从那里设置自定义声明。

用户登录后,您可以将其重定向到正确的页面。

firebase.auth().signInWithEmailAndPassword(email, password)
    .catch(function(error) {
  // Handle Errors here.
}).then(function(){
  firebase.auth().currentUser.getIdToken()
  .then((idToken) => {
     // Parse the ID token.
     const payload = JSON.parse(b64DecodeUnicode(idToken.split('.')[1]));
     // Confirm the user is an Admin.
     if (!!payload['admin']) {
       redirectAdminUI();
     }
  })
  .catch((error) => {
    console.log(error);
});