Javascript 如何在Firebase Auth中阻止用户在没有登录权限的情况下访问其他页面

Javascript 如何在Firebase Auth中阻止用户在没有登录权限的情况下访问其他页面,javascript,html,css,firebase,authentication,Javascript,Html,Css,Firebase,Authentication,我有一个网站,有多个网页,并使用Firebase作为后端。我已经为登录实现了firebase身份验证,并且我知道如何使用onAuthChangeState。现在的问题是,我正试图找到一种方法来阻止用户在没有登录页面的情况下访问其他页面。我想在php中有一种类似“会话或令牌”的东西,它充当用户访问页面的键。注意!我没有使用php,因为我也使用firebase作为我的网站的托管手段。顺便说一句,我看到的大多数源代码只使用了一个页面,并且使用了很多样式。display=“none或block”,我不想

我有一个网站,有多个网页,并使用Firebase作为后端。我已经为登录实现了firebase身份验证,并且我知道如何使用onAuthChangeState。现在的问题是,我正试图找到一种方法来阻止用户在没有登录页面的情况下访问其他页面。我想在php中有一种类似“会话或令牌”的东西,它充当用户访问页面的键。注意!我没有使用php,因为我也使用firebase作为我的网站的托管手段。顺便说一句,我看到的大多数源代码只使用了一个页面,并且使用了很多样式。display=“none或block”,我不想走这条路,因为我喜欢更有条理,并在代码分离方面进行适当的管理。这就是为什么我有多页例如;Login.html,Page2.html

我知道如何使用javascript重定向

firebase.auth().onAuthStateChanged(firebaseUser => {
    if(firebaseUser){
        window.location.href = "page2.html";
    }else{
        window.location.href = "page1.html";
    }
});
但是用户可能只是键入
并访问它。这正是我试图阻止的。

如果我理解正确,您需要检查用户是否登录。如果用户已登录,则需要显示页面;如果用户未登录,则需要将其重定向到登录页面。如果我理解错了,请纠正我,但我会举一个例子,说明我是如何做上述工作的

此代码必须放在每个页面上,您不允许用户在未登录的情况下访问这些页面

firebase.auth().onAuthStateChanged(function(user) {

if(user) {
   //Here you can place the code that you want to run if the user is logged in
} else {
   window.location.href = "login.html";
}

});

解决方案是,我只需要创建一个

firebase.auth().onAuthStateChanged(function(user) {

if(user) {
   //Here you can place the code that you want to run if the user is logged in
} else {
   window.location.href = "login.html";
}

});

并按照Harith的建议将其包含在所有页面上。

您的问题是确保用户在未经身份验证的情况下不能绕过登录页面访问其他页面吗?如果是这样,您可能希望将JavaScript添加到检查用户是否经过身份验证/登录的其他页面,如果没有,则重定向到登录页面。这就是我为我的一个小项目所做的。哦,我明白了,谢谢。我只需要在每个页面内的脚本上添加firebase.auth().onAuthStateChanged?是吗?没错,虽然这是一个基本的、保护不力的项目,除了我的老师之外,不会与任何人分享。我认为,为了安全起见,有人可以给你一个更严密的解决方案,但这可能不是一个太糟糕的解决方案本身。顺便说一句,它现在正在工作,谢谢你的建议。我已经完成了你给出的代码,我理解这个流程。我的问题是,如果用户输入地址和其他页面,他们甚至不需要通过登录页面就可以访问它。我希望may page2.html具有某种锁/会话/令牌,以便在用户未登录到登录页的情况下无法访问。