Ionic 3 firebase 不显示电子邮件已验证
Ionic 3 firebase doesn't show that email is verified
我 运行 在使用 firebase 开发电子邮件验证的过程中遇到了问题。
每当我尝试验证电子邮件地址时,我无法获得用户电子邮件地址已验证的信息。
我有这样的代码:
constructor(private afAuth: AngularFireAuth, public navCtrl: NavController, public navParams: NavParams) {
}
ionViewWillEnter() {
this.afAuth.auth.onAuthStateChanged(user => {
if (user && user.emailVerified) {
this.navCtrl.setRoot(ShoppingListPage);
}
});
}
proceedButtonHandler() {
this.afAuth.auth.onAuthStateChanged(user => {
if (user && user.emailVerified) {
this.navCtrl.setRoot(ShoppingListPage);
}
});
}
但是在我验证电子邮件地址和 运行 proceedButtonHandler 函数后,在 user.emailVerified 字段中我总是得到 "false" 结果,除非我刷新页面。
了解用户电子邮件当前是否已验证的正确方法是什么?有没有什么方法可以监视 "emailVerified" 字段的变化并在不单击按钮的情况下将用户重定向到另一个页面? (在 "ionViewWillEnter" 函数中尝试这样做)
如果用户邮箱通过邮箱验证进行带外验证link,验证后需要在客户端做两件事:
- 呼叫
currentUser.reload
。这将更新用户的 emailVerified 属性。
- 调用
currentUser.getIdToken(true)
强制刷新令牌或等待令牌刷新并自动获取找零。这是要更新令牌上的 email_verified
属性 所必需的。
Firebase 现在允许您在电子邮件验证后 return 返回应用。这是一个通过网络客户端的例子:
https://firebase.google.com/docs/auth/web/passing-state-in-email-actions
当您从此类操作 return 返回应用程序时,您可以使用它重新加载 user/token 知道用户刚刚验证了他们的电子邮件。以上还允许您在流程中传递状态。
我 运行 在使用 firebase 开发电子邮件验证的过程中遇到了问题。
每当我尝试验证电子邮件地址时,我无法获得用户电子邮件地址已验证的信息。
我有这样的代码:
constructor(private afAuth: AngularFireAuth, public navCtrl: NavController, public navParams: NavParams) {
}
ionViewWillEnter() {
this.afAuth.auth.onAuthStateChanged(user => {
if (user && user.emailVerified) {
this.navCtrl.setRoot(ShoppingListPage);
}
});
}
proceedButtonHandler() {
this.afAuth.auth.onAuthStateChanged(user => {
if (user && user.emailVerified) {
this.navCtrl.setRoot(ShoppingListPage);
}
});
}
但是在我验证电子邮件地址和 运行 proceedButtonHandler 函数后,在 user.emailVerified 字段中我总是得到 "false" 结果,除非我刷新页面。
了解用户电子邮件当前是否已验证的正确方法是什么?有没有什么方法可以监视 "emailVerified" 字段的变化并在不单击按钮的情况下将用户重定向到另一个页面? (在 "ionViewWillEnter" 函数中尝试这样做)
如果用户邮箱通过邮箱验证进行带外验证link,验证后需要在客户端做两件事:
- 呼叫
currentUser.reload
。这将更新用户的 emailVerified 属性。 - 调用
currentUser.getIdToken(true)
强制刷新令牌或等待令牌刷新并自动获取找零。这是要更新令牌上的email_verified
属性 所必需的。
Firebase 现在允许您在电子邮件验证后 return 返回应用。这是一个通过网络客户端的例子: https://firebase.google.com/docs/auth/web/passing-state-in-email-actions
当您从此类操作 return 返回应用程序时,您可以使用它重新加载 user/token 知道用户刚刚验证了他们的电子邮件。以上还允许您在流程中传递状态。