如果在以下位置找不到用户的电子邮件,我需要阻止用户身份验证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;
}
无法阻止用户使用 Firebase 身份验证进行身份验证。当他们进行身份验证时,他们所做的就是说“我是 X Yz”并证明这一点。
你什么can但要做的就是阻止他们访问您的数据库。例如,仅允许白名单用户读取您的数据库:
{
"rules": {
".read": "root.child('allowedUsers').child(auth.uid).exists()"
}
}
另请参阅:
- 如何在 Firebase 3.x 中禁用注册
-
当用户被禁用或删除时,Firebase 身份验证状态更改不会触发(白名单的倒置版本)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)