Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular Firebase身份验证密码重置:如何正确发送包含确认码的密码重置电子邮件?_Angular_Typescript_Firebase_Firebase Authentication_Ionic3 - Fatal编程技术网

Angular Firebase身份验证密码重置:如何正确发送包含确认码的密码重置电子邮件?

Angular Firebase身份验证密码重置:如何正确发送包含确认码的密码重置电子邮件?,angular,typescript,firebase,firebase-authentication,ionic3,Angular,Typescript,Firebase,Firebase Authentication,Ionic3,我一直无法让Firebase发送密码重置电子邮件,其中包括方法Firebase.auth()所需的确认代码。verifyPasswordResetCode(code) 我正在使用sendPasswordResetEmail(email)方法,该电子邮件包含一个链接,允许用户创建新密码 由于我对密码设置了一些限制(它们必须包含一个数字),这将打破限制 我在文档中找不到任何关于如何将确认码发送到电子邮件以重置密码的信息 我就是这样使用它的: public sendResetPasswordEmail

我一直无法让Firebase发送密码重置电子邮件,其中包括方法
Firebase.auth()所需的确认代码。verifyPasswordResetCode(code)

我正在使用
sendPasswordResetEmail(email)
方法,该电子邮件包含一个链接,允许用户创建新密码

由于我对密码设置了一些限制(它们必须包含一个数字),这将打破限制

我在文档中找不到任何关于如何将确认码发送到电子邮件以重置密码的信息

我就是这样使用它的:

public sendResetPasswordEmail(email: string): Promise<any> {

  return this.fireAgent.firebase.auth().sendPasswordResetEmail(email, {
    url: 'http://localhost:8100/',
    handleCodeInApp: true
  });

}
public-sendResetPasswordEmail(email:string):承诺{
返回此.fireAgent.firebase.auth().sendPasswordResetEmail(电子邮件{
网址:'http://localhost:8100/',
handleCodeInApp:对
});
}

任何帮助都将不胜感激。

据我所知,Firebase身份验证不允许您指定用户可以在重置密码电子邮件提供的url上插入的密码类型。但是,您应该能够使用验证码身份验证服务来实现它

要使用验证代码,您需要将对象
ActionCodeSetting
添加到
sendPasswordResetEmail
方法中。应该是这样的:

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: 'https://www.example.com/finishSignUp?cartId=1234',
  // This must be true.
  handleCodeInApp: true,
  iOS: {
    bundleId: 'com.example.ios'
  },
  android: {
    packageName: 'com.example.android',
    installApp: true,
    minimumVersion: '12'
  }
};
就您的情况而言,您唯一感兴趣的是
handleCodeInApp
。通过这种方式,电子邮件将为您提供一个您需要手动输入的代码
verifyPasswordResetCode

之后,您可以将新密码手动输入客户端,而无需使用Firebase电子邮件提供商。在使用
verifyPasswordResetCode
检查验证码是否有效后,只需调用
confirmPasswordReset(“验证码”、“新密码”)


希望这能对你有所帮助

我尝试在
ActionCodeSetting
上使用
handleCodeInApp
,但电子邮件仍然只显示一个链接,用于处理Firebase创建新密码的问题。它不包含我需要的
verifyPasswordResetCode
方法的代码。我已经更新了我的问题,以包括我正在使用的当前代码。有什么想法吗?你添加了
https://yours.firebaseapp.com/__/auth/action?mode=The 模板未编辑,包含
%LINK%
,将被生成的链接替换。但是,我仍然看不到用户可以在我的应用程序中输入任何验证代码进行验证,并且电子邮件中的链接将重定向到Firebase提供的新密码页面(我的
ActionCodeSetting
中也正确设置了
iOS
android
)。