我已经使用firebase和flutter创建了一个登录屏幕,一切正常,但是我希望用户使用真实的电子邮件(已验证)而不是任何电子邮件进行登录。
如果用户单击带有以下电子邮件的登录按钮:shsuhsafk@uisl.com,它将接受此电子邮件。
如何验证电子邮件不是伪造的,并且实际上属于真实地址。
答案 0 :(得分:4)
要真正验证用户的电子邮件地址,您需要发送验证邮件,该邮件需要用户采取措施。
仅检查该地址是否存在,因为该电子邮件地址可能属于任何人。
您可以在Firebase控制台中设置邮件模板,并使用以下代码发送验证邮件。
FirebaseUser user = await _firebaseAuth.createUserWithEmailAndPassword(email: email, password: password);
try {
await user.sendEmailVerification();
return user.uid;
} catch (e) {
print("An error occured while trying to send email verification");
print(e.message);
}
}
答案 1 :(得分:0)
String email = "user@example.com";
try {
String link = FirebaseAuth.getInstance().generateSignInWithEmailLink(
email, actionCodeSettings);
// Construct email verification template, embed the link and send
// using custom SMTP server.
sendCustomPasswordResetEmail(email, displayName, link);
} catch (FirebaseAuthException e) {
System.out.println("Error generating email link: " + e.getMessage());
}
请参阅下面的链接以获取更多信息:https://firebase.google.com/docs/auth/admin/email-action-links