Firebaseの電子メール認証で作業しています。 Firebaseは、電子メールが存在する場合、パスワードがデータベース内のパスワードと一致するかどうかをチェックするだけです。電子メールが存在しない場合は、エラーメッセージが表示されず、その人にサインインされません。 Firebaseがメールが存在するたびにチェックし、エラーメッセージを返さないようにするために、これを修正する方法があるかどうか疑問に思っていました。 signInWithEmailAndPasswordのためにドキュメントを見てみると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>
_ _ "Firebase認証が簡単にセキュアなアプリケーションを構築します" - 安全であるの一部が_ ** _彼らは間違ったパスワードを持っている人を語っていません。あなたは彼らに「はい、そのユーザーは存在しますが、間違ったパスワードを持っている」とは言いません。あなたは彼らに「いいえ、そのユーザーは存在しない」とは言わない。有効なユーザー名を見つけるだけで、あなたをハッキングすることの半分です。 「あなたはそのユーザー名とパスワードでログインできません」とだけ伝えます。 –
@StephenPよろしくお願いいたします。しかし、私の主な問題は、データベースに存在しない電子メールを入力すると、エラーメッセージが表示されず、人にサインインされます。どうすれば避けられますか?ユーザーが存在しない場合は、「そのユーザー名とパスワードでログインすることはできません」というエラーメッセージを表示します。 。 – SpiderMonkey