sendSignInLinkToEmail发送无效的URL

时间:2018-04-15 21:57:25

标签: javascript firebase firebase-authentication

我正在尝试在网络应用上实施firebase的email link auth,而我在理解这里的问题时遇到了一些麻烦。

我已按照页面上的说明发送电子邮件并发送,但问题是发送的网址无效。

async sendAuthEmail(email) {
  var actionCodeSettings = {
    // URL you want to redirect back to. The domain (www.example.com) for this
    // URL must be whitelisted in the Firebase Console.
    url: "http://localhost:3000",
    // This must be true.
    handleCodeInApp: true,
    iOS: {
      bundleId: "com.example.ios"
    },
    android: {
      packageName: "com.example.android",
      installApp: true,
      minimumVersion: "12"
    }
  };

  return await firebase
    .auth()
    .sendSignInLinkToEmail(email, actionCodeSettings);
}

发送的URL是(我更改了我的firebaseapp名称):

https://?link=https://myfirebasedbname.firebaseapp.com/__/auth/action?apiKey%3DAIzaSyDSio7vAbW7O0TVGCF2UpG7FsQDvHX0M7Q%26mode%3DsignIn%26oobCode%3DXoAsz5CoIJOhdhAcJpC2E3iWI8fmyTwJPIUmMlgLvakAAAFiy0Wm9A%26continueUrl%3Dhttp://localhost:3000&apn=com.example.android&amv=12&ibi=com.example.ios&ifl=https://myfirebasedbname.firebaseapp.com/__/auth/action?apiKey%3DAIzaSyDSio7vAbW7O0TVGCF2UpG7FsQDvHX0M7Q%26mode%3DsignIn%26oobCode%3DXoAsz5CoIJOhdhAcJpC2E3iWI8fmyTwJPIUmMlgLvakAAAFiy0Wm9A%26continueUrl%3Dhttp://localhost:3000

我也尝试更改url参数,但无论如何它都会失败。

任何可以分享的想法?

谢谢!

1 个答案:

答案 0 :(得分:0)

您是否配置了Firebase动态链接域?您需要在Firebase控制台的动态链接部分执行此操作。

如果您仅将此用于仅限网络的应用,则无需在android对象中加入iosActionCodeSettings字段。这避免了设置FDL的需要:

var actionCodeSettings = {
  url: "http://localhost:3000",
  // This must be true.
  handleCodeInApp: true
};