【发布时间】:2018-10-04 00:28:33
【问题描述】:
在我的应用程序中,当用户输入电子邮件和密码时,他可以注册并登录。 但是我如何确保注册用户是电子邮件所有者而不是使用某人的电子邮件(我正在使用 firebase 进行身份验证)。
- 要求用户在注册时验证其电子邮件?
- 除非他们激活电子邮件,否则阻止他们登录?
如果有上述情况,怎么办?
【问题讨论】:
标签: android firebase firebase-authentication
在我的应用程序中,当用户输入电子邮件和密码时,他可以注册并登录。 但是我如何确保注册用户是电子邮件所有者而不是使用某人的电子邮件(我正在使用 firebase 进行身份验证)。
如果有上述情况,怎么办?
【问题讨论】:
标签: android firebase firebase-authentication
您可能需要更新您的 Firebase SDK 版本。 auth 模块中的 Firebase 用户可以使用函数user.SendEmailVerification 发送电子邮件验证:
举例
FirebaseAuth auth = FirebaseAuth.getInstance();
FirebaseUser user = auth.getCurrentUser();
user.sendEmailVerification()
.addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
Log.d(TAG, "Email sent.");
}
}
});
如果您想限制对应用程序的访问,您需要使用user.isEmailVerified()。你如何使用它取决于你希望你的应用表现出什么样的行为。请注意,FirebaseUser 对象已缓存,因此您可能需要调用 .getCurrentUser().reload()。您可以在计时器上执行此操作,也可以在用户返回应用程序时执行此操作。或者,您可以在登录后进行检查,如果未通过验证,则将其注销,并显示一条消息,说明它们未通过验证并等待他们重试。
有关更完整的讨论,请参阅: https://firebase.googleblog.com/2017/02/email-verification-in-firebase-auth.html
【讨论】: