如何在flutter中的Firebase身份验证中验证电子邮件?

时间:2019-11-26 11:39:58

标签: firebase email authentication flutter dart

我已经使用firebase和flutter创建了一个登录屏幕,一切正常,但是我希望用户使用真实的电子邮件(已验证)而不是任何电子邮件进行登录。

如果用户单击带有以下电子邮件的登录按钮:shsuhsafk@uisl.com,它将接受此电子邮件。

如何验证电子邮件不是伪造的,并且实际上属于真实地址。

2 个答案:

答案 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