2016-11-12 111 views
0

我是Firebase的新手,很遺憾,如果這看起來很基本Firebase函數允許無效的電子郵件被允許

我寫了一段應該註冊用戶的代碼。它只是這樣做的,但是,我可以填寫一個不存在的電子郵件。

這不是完整的代碼,只是功能是負責這個

window.createUser = function (email, password) { 
firebase.auth().createUserWithEmailAndPassword(email, password).then(function() { 
    location.reload(); 
}).catch(function (error) { 
    if (document.getElementById("lemail").value == "" && document.getElementById("lpassword").value == "") { 
     $("#lalert").html("<strong>Oh no! </strong> Looks like the email or password inputs are not filled out!"); 
     $("#lalert").show(); 

    } else { 

     $("#lalert").html("<strong>Oh no! </strong>" + aTranslate(error.code)); 
     $("#lalert").show(); 
    } 
    }); 
} 

aTranslate()是獲取錯誤代碼並將其轉換爲一個自定義消息

回答

0

如果一個函數不存在的電子郵件是一封不真實的電子郵件,然後Firebase身份驗證不會檢查郵件是否是合法郵件或合成郵件。你將不得不測試自己是否是有效的電子郵件。

+1

您不必親自測試電子郵件。 Firebase API包含['emailVerified'](https://firebase.google.com/docs/reference/js/firebase.User#emailVerified)媒體資源和[sendEmailVerification](https://firebase.google.com/ docs/reference/js/firebase.User#sendEmailVerification)來管理這個功能。所以你不必自己做*完全*。 – cartant

+0

我會考慮一個單獨的(更完整的)答案@cartant。 :-) –

+0

我將如何檢查電子郵件是否合法? – HunchoDevelo

0

我最近一直在做同樣的事情。爲了得到這個,你必須使用errorCodes和錯誤消息。您應該有這樣的內容來檢查Firebase用戶是否存在。檢查每個錯誤代碼,以避免您已禁用使用您的應用程序的假帳戶或用戶。

  var errorCode = error.code; 
     var errorMessage = error.message; 
     if (errorCode === 'auth/wrong-password' || errorCode === 'auth/invalid-email' || errorCode === 'auth/user-disabled' || errorCode === 'auth/user-not-found') { 
      window.alert(errorMessage); 
     } 

這完全在JS你,如果你想你可以改變它爲JQuery。希望這可以幫助!

相關問題