因此,我正在使用Firebase網絡電子郵件身份驗證,並且遇到了此問題。 Firebase只會檢查密碼是否與電子郵件存在的數據庫中的密碼匹配。如果電子郵件不存在,那麼它不會給出錯誤信息並登錄該用戶。我想知道是否有解決此問題的方法,以便Firebase每次檢查電子郵件時都會檢查,如果不存在,則會返回錯誤消息。Firebase不檢查電子郵件是否爲帳戶
的JavaScript
function SignUserIn() {
// Get elements
const txtEmail = document.getElementById("txtEmail");
const txtPassword = document.getElementById("txtPassword");
// Get email and pass
const email = txtEmail.value;
const password = txtPassword.value;
const auth = firebase.auth();
//Sign In
firebase.auth().signInWithEmailAndPassword(email, password)
.catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
if (errorCode === 'auth/wrong-password') {
window.alert('Wrong password.');
}
else {
//Realtime listener
firebase.auth().onAuthStateChanged(frebaseUser => {
if (email) {
window.alert("You Are Successfully Signed In! Welcome " + email);
window.location = 'homepage.html'; //After successful login, user will be redirected to Homepage
sessionStorage.setItem("email", email);
}
else {
console.log('Not logged in');
window.alert("Incorrect User/Password Please Try Again");
}
});
sessionStorage.setItem(email);
}
});
}
HTML BODY
<div class="login-card">
<div class="mlogo"><img src="LogoFINAL copy.png" alt="Medavance"> </div>
<h1 class="title">Welcome To Medavance! </h1>
<br>
<!------------------------------------- Start of Login -------------------------------------------->
<input type="email" id="txtEmail" placeholder="Email" required>
<input type="password" id="txtPassword" placeholder="Password" required>
<button id="btnLogin" class="btn btn-action" onclick="SignUserIn()"> Log in </button>
<div class="btn btn-secondary"><a href="NewAccount.html"> Sign Up</div>
</div>
_「火力地堡認證使得構建安全的應用程序很容易」 _ - 被安全部分_ **不告訴別人** _他們有錯誤的密碼。你不告訴他們「是的,該用戶存在,但你得到了錯誤的密碼」。你不告訴他們「不,該用戶不存在」。因爲只需找到有效的用戶名就可以攻擊你。你只告訴他們「不能用你的用戶名和密碼登錄你」。 –
@StephenP好的,謝謝,我明白了。但我的主要問題是,如果我輸入的數據庫中不存在的電子郵件,我不會收到錯誤消息,而只是登錄該人,我如何避免這種情況,並至少讓人來檢查用戶存在,如果用戶不存在,則顯示錯誤消息「您無法使用該用戶名和密碼登錄」。 。 – SpiderMonkey