![](/img/trans.png)
[英]How to sign out the user when the email is not verified, Firebase Auth
[英]How to check if email is verified in firebase on client side?
我想检查用户在登录时是否验证了他的 email 地址。看来我必须在登录后执行此操作。 有更好的方法吗?
this.authService
.login(this.email, this.password)
.then(res => {
if(!res.user.emailVerified}) {
// Log out again!
} else {
// redirect to next page
}
});
您当前的代码意味着检查仅在用户明确签入时运行。如果这是您想要的,则此代码将实现它。
然而,在许多应用程序中,用户只显式登录一次/很少,然后应用程序会在每次重新启动时恢复其身份验证 state。 Firebase 身份验证实际上在幕后执行此操作:保留身份验证 state,然后在应用程序重新启动时恢复它。
要选择此流程,您需要使用身份验证 state 侦听器,如获取当前登录用户的文档中所示。
firebase.auth().onAuthStateChanged(function(user) {
if (user) {
// User is signed in.
} else {
// No user is signed in.
}
});
如果您只是在emailVerified
属性更新后才让用户退出,我不会这样做,因为这只会让他们感到烦恼,要求他们重复输入密码。 相反,您也可以通过在代码中调用user.reload()
来强制刷新他们的个人资料。
您可能希望从“onAuthStateChanged”获取用户并检查 emailVerified 参数以执行您的逻辑。
firebase.auth().onAuthStateChanged(function(user) {
if (user) {
// User is signed in.
if(user.emailVerified){
// proceed with your logic
}
} else {
// No user is signed in.
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.