Firebase登录时验证电子邮件

时间:2018-06-21 23:23:38

标签: ios firebase firebase-authentication

我的iOS应用程序具有以下逻辑:

  • 用户注册
  • Firebase发送电子邮件确认
  • 返回登录屏幕

现在,如果用户登录但未验证电子邮件,则我们有一个用户会话,并且isEmailVerified为假。 我只需要在应用程序的特定位置检查isEmailVerified。 另外,我认为登录用户,检查字段并注销用户都是不好的做法。

我需要重新验证用户身份,这样做的最佳方法是什么?用户登录后,如何切换isEmailVerified的状态?

谢谢

1 个答案:

答案 0 :(得分:1)

首先,您需要具有电子邮件和密码才能创建证书。您的用户已经在登录页面上提供了此信息...因此,电子邮件和密码可以在iOS上永久存储。在Android中,等效项为SharedPreferences。

我不在iOS中编写代码,但这可以使您对逻辑有所了解。

然后,当您到达应用程序中验证电子邮件的位置时:

if (user.isEmailVerified) == true {
   // you do not need to hold the email and password in persistent storage anymore.
   // go into your persistent storage and delete the data.
} else {
   // get the email and password the user saved in persistent storage.
   String email = persistentStorage.getEmail();
   String password = persistentStorage.getPassword();

    var user = firebase.auth().currentUser;
    var credentials = firebase.auth.EmailAuthProvider.credential(email, password);
    user.reauthenticate(credentials);

    // then, when finished reauthenticating, check whether isEmailVerified() == true;


}