首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >离子3防火墙不能显示电子邮件已被验证

离子3防火墙不能显示电子邮件已被验证
EN

Stack Overflow用户
提问于 2017-09-17 20:51:54
回答 1查看 482关注 0票数 0

我在用firebase开发电子邮件验证时遇到了一个问题。

每当我试图验证电子邮件地址时,我都无法获得用户的电子邮件地址被验证的信息。

我有这样的密码:

代码语言:javascript
复制
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“函数中这样做)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-18 05:43:27

如果用户电子邮件是通过电子邮件验证链接在频带外进行验证的,那么在验证之后,您需要在客户端上做两件事:

  1. 打给currentUser.reload。这将更新用户上的emailVerified属性。
  2. 调用currentUser.getIdToken(true)强制令牌刷新,或者只是等待令牌被刷新并自动获取更改。这是令牌上的email_verified属性要更新所必需的。

Firebase现在允许您在电子邮件验证后返回应用程序。下面是一个通过web客户机的示例:https://firebase.google.com/docs/auth/web/passing-state-in-email-actions

当您从这样的操作返回到应用程序时,您可以使用它来重新加载用户/令牌,知道用户刚刚验证了他们的电子邮件。上述功能还允许您在流中传递状态。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46268776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档