作者:田文萍 | 来源:互联网 | 2023-02-06 16:51
我已经使用firebase-ui成功设置了Firebase电子邮件/密码身份验证。
var uiCOnfig= {
signInSuccessUrl: '',
signInOptions: [
// Leave the lines as is for the providers you want to offer your users.
firebase.auth.GoogleAuthProvider.PROVIDER_ID,
firebase.auth.FacebookAuthProvider.PROVIDER_ID,
firebase.auth.EmailAuthProvider.PROVIDER_ID
],
// Terms of service url.
tosUrl: ''
};
// Initialize the FirebaseUI Widget using Firebase.
var ui = new firebaseui.auth.AuthUI(firebase.auth());
// The start method will wait until the DOM is loaded.
ui.start('#firebaseui-auth-container', uiConfig);
但是出于安全原因,我希望用户确认她/他的电子邮件。但是从上面的代码中,它不会向用户发送验证邮件。因此,如果用户未验证他/她的帐户邮件,我已经使用以下方法将验证邮件发送给用户。
firebase.auth().onAuthStateChanged(function(user) {
if (user && user.uid != currentUid) {
if (firebase.auth().currentUser.emailVerified) {
currentUid = user.uid;
else {
//---- HERE YOU SEND THE EMAIL
firebase.auth().currentUser.sendEmailVerification();
}
但是,当我使用此代码时,它将为同一帐户发送多个验证邮件。这意味着该方法在用户每次重新加载页面时都运行。如果有人可以帮助我确定是否使用Firebase为特定用户发送了验证邮件,那将非常有用。