尝试构建密码重置流程,用户收到密码重置电子邮件,重置密码,然后被引导回应用程序。试图避免深层链接,只需要打开应用程序备份。
该应用使用最新的Ionic和Angular版本以及Firebase身份验证。
问题:我可以发送密码重置电子邮件并更改该帐户的密码,但是当我点击firebase提供的继续按钮时,它会在Android和iPhone上中断。该链接也以localhost开头。我不确定我做错了什么,或者我是否配置错误。
当Firebase的文档显示时,也会感到困惑," Android / iOS应用需要在控制台中注册。"
真的没想到了!
我的操作代码设置几乎是默认设置。
该网址已在Firebase的授权域中列入白名单。
var actionCodeSettings = {
url: 'https://www.myapp.com/?email=' + email,
iOS: {
bundleId: 'com.myapp.new'
},
android: {
packageName: 'com.myapp.new',
installApp: true,
minimumVersion: '2'
},
handleCodeInApp: false
};
这是链接的样子
https://localhost/?link=https://myapp.com/?email%3Demail@example.com&apn=com.myapp.new&amv=2&ibi=com.myapp.new&ifl=https://myapp.com/?email%3Demail@example.com
答案 0 :(得分:1)
似乎您的FDL域未配置。它被localhost
取代,奇怪的是。在这种情况下应该返回错误。你能进入动态链接部分并同意FDL的条款吗?域应该看起来像example.app.goo.gl
。
答案 1 :(得分:0)
我强烈建议您阅读this article以了解如何使用Ionic正确完成此操作。如果那不是你需要的,请告诉我。
.TS
resetPassword(){
if (!this.resetPasswordForm.valid){
console.log(this.resetPasswordForm.value);
} else {
this.authProvider.resetPassword(this.resetPasswordForm.value.email)
.then((user) => {
let alert = this.alertCtrl.create({
message: "We just sent you a reset link to your email",
buttons: [
{
text: "Ok",
role: 'cancel',
handler: () => { this.navCtrl.pop(); }
}
]
});
alert.present();
}, (error) => {
var errorMessage: string = error.message;
let errorAlert = this.alertCtrl.create({
message: errorMessage,
buttons: [{ text: "Ok", role: 'cancel' }]
});
errorAlert.present();
});
}
}