【发布时间】:2019-05-28 16:16:25
【问题描述】:
我正在使用 ionic 3 和使用 facebook 的 firebase 身份验证。如果用户在注册时未提供电子邮件 ID 或根本未验证,则 Facebook 不会返回电子邮件 ID。
我们的系统要求提供电子邮件 ID。因此,作为后备,我们提示用户提供电子邮件 ID。由于我们让用户在此步骤中手动提供电子邮件 ID,因此需要对其进行验证。
似乎 firebase auth sendEmailVerifcation 需要身份验证中已经存在的电子邮件 ID。由于我们的案例是专门处理缺少此信息的,所以我们如何使用此功能来验证电子邮件 ID?
也欢迎任何其他想法来处理它。这对我们来说是一个关键的障碍,因为人们通过提供虚假的电子邮件 ID 滥用我们的奖励系统。
我查看了 sendEmailVerification api,但它似乎不接受任何参数来手动传递电子邮件 ID。
constructor(public navCtrl: NavController,
public navParams: NavParams,
private afAuth: AngularFireAuth,
private fb: Facebook,
private platform: Platform,
private core:CoreProvider,
public viewCtrl: ViewController,
private ddlSvc: DoodleDataProvider,
private alertCtrl:AlertController,
private toastCtrl: ToastController) {
//block back button on android
platform.registerBackButtonAction(() => {
},1);
afAuth.authState.subscribe(user => {
console.log("auth subscription finished: with user:" + JSON.stringify(user))
//go back if user could not be retrieved or manual logout is set to true
if (!user || core.manualLogout == true) {
return;
}
user.sendEmailVerfication() //problem here when email is null
console.log("initializing user")
this.createUser(user.uid)
});
}
【问题讨论】:
-
如何也为他们创建一个电子邮件+密码帐户,然后linking the email+password and the Facebook accounts?完成后,您可以使用
sendEmailVerfication发送验证消息。 -
我们基于 ionic 3 的客户端应用程序是一个面包店应用程序,我们希望在用户登录和帐户方面保持最简单。所以我们喜欢在 facebook 上使用一键登录的想法。现在用询问电子邮件和密码的要求替换它是客户不会高兴的。是否有一种解决方法,例如使用提供的电子邮件和后台默认密码创建带有电子邮件和密码的帐户,然后发送验证链接?基本上,只有当 fb 不给我们时,我们才需要验证电子邮件。我们希望保持用户体验不变。
-
您可以生成一个随机密码。我不会使用默认密码,因为这意味着知道密码的任何人都可以登录每个帐户。
-
我理解默认密码的风险。但我的意图是使用这种电子邮件 + pwd 机制只是为了能够在某些情况下使用 sendEmailVerification 链接。我总是想强制用户使用 facebook 登录。你觉得这行得通吗?
标签: firebase firebase-authentication email-verification