在电子邮件操作中传递状态 - continueUrl

时间:2017-09-14 10:33:45

标签: firebase firebase-authentication

在接受的答案的评论中,我注意到我应该将我的firebase版本设置为4.3.1,而不是我的上一个版本4.2.0

嗨,这应该是相当简单的,我正在关注文档:firebase passing state in email actions以及changing the default email-handler

我希望在用户验证他的电子邮件到新网址后重定向用户。该URL已位于firebase中的Authenticated域中。

我也已经有了actionCodeSettings:

var actionCodeSettings = {
    url: 'http://myurl.io/join',
    iOS: {
      bundleId: 'com.myurl.ios'
    },
    android: {
      packageName: 'com.myurl.android',
      installApp: false,
      minimumVersion: '12'
    },
    handleCodeInApp: false
  };

  function sendEmailVerification() {
    console.log('sendEmail Verification');
    firebase.auth().currentUser.sendEmailVerification(actionCodeSettings).then(function() {
    });
  }

如果我理解正确,我现在需要实现从另一个答案中找到的getParameterByName。我的两个问题是:

1)默认操作网址为https://faros-fe2f5.firebaseapp.com/__/auth/action。我应该改变这个吗?它将根据我的actionCodeSettings自动更改

2)在第113行,我们有感兴趣的函数,它接受通过getParameterByName检索的参数。在这一点上,continueUrl是如何调用的?

我发现文档在这个问题上有点模糊。在此阶段,我想在电子邮件验证完成后重定向用户

1 个答案:

答案 0 :(得分:3)

1)默认操作网址为https://faros-fe2f5.firebaseapp.com/__/auth/action。我应该改变这个吗?它将根据我的actionCodeSettings自动更改

如果您要在自己的页面中处理验证链接,可以将其更改为您自己的链接,但这只能在Firebase控制台中完成 - >验证 - >电子邮件模板部分

continue URL('http://myurl.io/join')是最终的重定向链接,它将嵌入到链接的continueUrl查询参数中。您通常会在完成电子邮件验证后,显示一个继续按钮以转到该链接。这可以从客户端传递,并且必须是列入白名单的域。

2)在第113行,我们有感兴趣的函数,它采用通过getParameterByName检索的参数。在这一点上,continueUrl是如何调用的?

如果您使用的是自己的电子邮件操作网址,而不是上面的.../__/auth/action链接,则只需要写入此内容。 您应该在应用电子邮件验证后,显示一个继续按钮以返回该链接。

我建议您尝试使用默认小部件的流程,单击链接,验证电子邮件,然后单击继续按钮。您可以模仿它并基于此构建自己的自定义目标网页。