gpt4 book ai didi

javascript - Firebase登录成功后如何链接到下一页?

转载 作者:行者123 更新时间:2023-12-03 00:49:05 25 4
gpt4 key购买 nike

我在 Web 应用程序中使用 Firebase Auth 时遇到一些问题。我之前在移动开发中使用过它,但无法掌握 JavaScript Web 的窍门。

这是我的代码:

function signIn(){
var userEmail = document.getElementById("email_").value;
var userPass = document.getElementById("password_").value;
firebase.auth().signInWithEmailAndPassword(userEmail, userPass).catch(function(error) {
var errorCode = error.code;
var errorMessage = error.message;
window.alert(errorCode);
});
var user = firebase.auth().currentUser;
if (user) {
console.log(user);
window.location("home.html");
} else {}
}
<!DOCTYPE html>
<head>
<meta charset="utf-8"/>
<script src="login.js"></script>
<script src="https://www.gstatic.com/firebasejs/5.5.7/firebase-auth.js"></script>
<script src="https://www.gstatic.com/firebasejs/5.5.7/firebase-database.js"></script>
<link rel="stylesheet" href="../style/style.css">
<script src="https://www.gstatic.com/firebasejs/5.5.7/firebase.js"></script>
<script>
var config = {
apiKey: "AIzaSyDp_LRGOFoqZuvRTWmDLdheLy184QKMOFA",
authDomain: "norednovember.firebaseapp.com",
databaseURL: "https://norednovember.firebaseio.com",
projectId: "norednovember",
storageBucket: "norednovember.appspot.com",
messagingSenderId: "569257202876"
};
firebase.initializeApp(config);
</script>
</head>
<body>

<div id="login_div" class="main-div">
<p id="email">Email</p>
<input type="email" placeholder="Email Address" id="email_"/>
<p id="password">Password</p>
<input type="password" placeholder="Password" id="password_"/>
<button id="signup" onclick="signIn()">Log In</button>
</div>

</body>
</html>

现在,当我输入错误的电子邮件或密码时,会弹出一个窗口警报让我知道。但是,当我单击警报上的“确定”时,它会自动将我重定向到下一页(“home.html”)。

如何更改它,以便它仅在成功登录后重定向用户?

谢谢!

最佳答案

我可能是错的,但是你能不能检查一下错误是否存在,如果不存在则登录?

    firebase.auth().signInWithEmailAndPassword(userEmail, userPass).catch(function(error) {
if (error) {

}
else{
//login
}
});

我认为正确的方法是执行以下操作。

firebase.auth().onAuthStateChanged(function(user) {
if (user) {
//user exists and is logged in
//redirect Home
} else {
// User is signed out.
// redirect to login
}
});

如果您对每个页面进行上述检查,但 true 中没有任何重定向在这种情况下,您的网站基本上将受到密码“保护”。任何时候未登录(或未通过身份验证)的用户尝试访问页面时,它都会将他们重定向到登录页面,直到他们登录为止。我使用“ protected ”,因为我不知道这是否是密码保护网站的正确方法,但它适用于前端。如果他们经过身份验证,则不会发生任何变化,他们能够查看该站点 - 您还可以安全地调用任何 user变量而不是 null .

关于javascript - Firebase登录成功后如何链接到下一页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53128938/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com