1

因此,我正在与移动开发团队密切合作,以便在用户注册、重置密码等时生成正确的电子邮件。

使用我粘贴在下面的这段代码,在所有的白名单和动态链接配置​​之后,我们终于生成了链接。它适用于iOS和Android这两个应用程序。问题出在webapp上。如果用户尝试通过应用程序注册并收到此电子邮件但在桌面打开它,则 web 应用程序将显示 404 并且不会转到我设置的 url url: baseUrl(这是用户能够激活他的 url电子邮件)。

我在这里不明白什么?

exports = module.exports = region('europe-west1').https.onRequest(async (
  request,
  response,
): Promise<any> => {
  const CONFIG = config();
  const { mobile } = CONFIG;
  const baseUrl = CONFIG.bloqify.base_url;

  const actionCodeSettings: authLib.ActionCodeSettings = {
    url: baseUrl,
    iOS: {
      bundleId: mobile.ios.bundle_id,
    },
    android: {
      packageName: mobile.android.package_name,
      installApp: true,
      minimumVersion: mobile.android.moinimum_version,
    },
    handleCodeInApp: true,
    dynamicLinkDomain: mobile.dynamic_link.domain,
  };

  const [generateLinkError, generateLinkSuccess] = await to(
    auth.generateEmailVerificationLink('testemail@test.com', actionCodeSettings),
  );
  if (generateLinkError) {
    console.log(generateLinkError.message);
    return response.status(500).send({
      success: false,
      refunded: !!generateLinkError,
      message: generateLinkError.message,
    });
  }

  console.log(generateLinkSuccess);

  return response.status(200).send({ success: true });
});
4

2 回答 2

1

它应该回退到baseUrl在桌面浏览器中打开时。该页面应该在您的端实现。您应该按照“在网页中完成登录”中说明的步骤进行操作。否则,这将显示 404 错误,因为该页面不可用。

于 2019-07-24T03:23:41.063 回答
0

您需要在 Firebase 项目控制台中设置验证链接的 url。

转到身份验证->模板->单击模板部分中的编辑按钮

然后单击底部的自定义 url 链接,然后在字段中添加您网站的域并添加该地址唯一的 url 路径。例如

https://你的域名/动作

之后使用您的 web sdk 处理操作代码以标记电子邮件已验证/更新密码。

PS您在操作设置中传递的网址用于重定向目的。处理这些链接的更好方法是创建单独的域托管,仅用于处理这些链接。在您的 Firebase 设置中提供该域地址,然后在这种情况下执行验证重定向到您的 Vue 网站。这是实现此场景的 React 应用程序:https ://github.com/griffinsockwell/react-firebase-custom-email-handlers

步骤1

在此处输入图像描述

第2步

在此处输入图像描述

于 2019-07-23T10:52:21.533 回答