2017-08-21 12 views
0

電子メールがallowedUsersにない場合、ユーザー認証を防止する必要があります。すべてのアクションはusersのリストで実行されるため、実際にはアプリケーションには影響しませんが、認証が行われないとうまくいくでしょう。Firebase - ユーザー認証を防止する

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

ユーザーがFirebase認証で認証するのを防ぐ方法はありません。彼らが認証するときに彼らがすることは、「私はX Yzです」と言ってそれを証明することです。

あなたはになります。あなたはあなたのデータベースにアクセスできないようにします。参照してください

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

+0

なりを例にのみ許可するためにホワイトリストされたユーザーは、データベースへのアクセスを読みますセンス。 Firebaseの[認証]タブには長いユーザーリストがあります。私の質問で言ったように、これは私が 'users'リストに自分のUIDを持っていないので、私が取り組んでいるアプリには影響しません。あなたの答えをありがとう! – Ciprian

関連する問題