javascript - 多角色身份验证 Firebase Web

标签 javascript firebase web-applications firebase-authentication

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

根据官方文档,我只对一种类型的用户进行了简单的身份验证。 我想知道如何注册具有不同 Angular 色的用户,然后将它们分别记录到特定页面。

最佳答案

根据预先存在的“管理员”和“高级”用户列表来控制每个用户所看到的体验的最简单方法可能是使用自定义声明。

如果您仅使用标准 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);
});

关于javascript - 多角色身份验证 Firebase Web,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48772883/

相关文章:

javascript - 如何使用 JavaScript 在特定 HTML div 中显示消息?

javascript - 火存储 : Couldn't Serialize object of type 'ArrayUnionTransform'

web-applications - 如何在Weblogic中显示Java.Util Logger输出?

android - 无法查询存储在 Firebase 动态/深层链接中的参数

java - 在没有 Maven 的 Eclipse 中创建 src/main/java 文件夹结构

security - 客户端的公共(public)IP地址是一个好的安全 token 吗?

javascript - 我无法在回调中对元素运行方法

javascript - 我如何在这个ajax代码中选择第二个输入

javascript - Vue 多选与 axios 调用数据库,laravel

javascript - 为什么 react-native-gifted-chat 不能从 firebase 时间戳正确显示时间?