Firebase - 阻止用户身份验证

时间:2017-08-21 04:05:09

标签: firebase firebase-realtime-database firebase-authentication

如果在allowedUsers中找不到他们的电子邮件,我需要阻止用户身份验证。它并没有真正影响应用程序,因为所有操作都将在users列表中执行,但如果身份验证没有发生,那将会很好。

loginWithGoogle() {
    const userDetails = this.afAuth.auth.signInWithPopup(new firebase.auth.GoogleAuthProvider())
      .then(user => {
        console.log(user.user.uid);

        const queryObservable = this.db.list('/allowedUsers', {
          query: {
            orderByChild: 'email',
            equalTo: user.user.email,
          }
        }).subscribe(data => {

          if (data.length > 0) {

            const userObj = {
              admin: false,
              ...
              email: data[0].email,
              name: data[0].name,
              verified: false,
            };

            this.addUser(userObj, user.user.uid);

          }

        });

      });

    return userDetails;
  }

1 个答案:

答案 0 :(得分:1)

无法阻止用户使用Firebase身份验证进行身份验证。他们在进行身份验证时所做的就是说"我是X Yz"并证明它。

可以做的是阻止他们有权访问您的数据库。例如,仅允许列入白名单的用户对您的数据库进行读访问:

{
  "rules": {
    ".read": "root.child('allowedUsers').child(auth.uid).exists()"
  }
}

另见: