pyy*_*pyy 6 firebase firebase-authentication angularfire2
onSubmit(formData) {
if(formData.valid) {
console.log(formData.value);
this.af.auth.createUser({
email: formData.value.email,
password: formData.value.password
}).then(
authState => {
authState.auth.sendEmailVerification();
this.router.navigate(['/login'])
}).catch(
(err) => {
console.log(err);
this.error = err;
})
}
}
Run Code Online (Sandbox Code Playgroud)
在Firebase中,我设置了SendEmailVerfication上面的代码,电子邮件可以正常发送.但是,在我的应用中,没有点击验证电子邮件的用户与点击的用户之间没有区别,如何有所作为?
car*_*ant 13
根据文档,该User对象包含一个emailVerified属性.
因此,可以检查signInWithEmailAndPassword方法的promise所解析的用户 - 或者传递给onAuthStateChanged方法的回调的用户 - 并且可以检查其值emailVerified.
- 如果您已经登录,以下解决方案可以帮助您检查电子邮件验证状态。
1)获取当前用户的推荐方法是在 Auth 对象上设置观察者:
firebase.auth().onAuthStateChanged(authUser => {
if(authUser.user.emailVerified){ //This will return true or false
console.log('email is verified')
}else{
console.log('email not verified')
}
})
Run Code Online (Sandbox Code Playgroud)
2)您还可以使用 currentUser 属性获取当前登录的用户。
var user = firebase.auth().currentUser;
if (user.emailVerified) {
// email is verified.
} else {
// email is not verified.
}
Run Code Online (Sandbox Code Playgroud)
- 如果您尚未登录,请尝试以下解决方案。
firebase.auth().signInWithEmailAndPassword(email, password ).then(authUser => {
if(authUser.user.emailVerified){ //This will return true or false
console.log('email is verified')
}else{
console.log('email not verified')
}
}).catch(function(error) {
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7128 次 |
| 最近记录: |