我的iOS应用程序具有以下逻辑:
现在,如果用户登录但未验证电子邮件,则我们有一个用户会话,并且isEmailVerified
为假。
我只需要在应用程序的特定位置检查isEmailVerified
。
另外,我认为登录用户,检查字段并注销用户都是不好的做法。
我需要重新验证用户身份,这样做的最佳方法是什么?用户登录后,如何切换isEmailVerified
的状态?
谢谢
答案 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;
}