繁体   English   中英

仅向使用 Firebase 的登录用户显示 HTML 页面

[英]Displaying HTML page only to logged in users using Firebase

我有一个简单的 html 页面,我用 Firebase 保护它。

我想听听别人对我这样做是否安全的看法。

为了检查用户是否登录,我在 header 中放置了一个 javascript function。我注意到当我尝试在未登录的情况下访问该页面时,我可以在一瞬间看到页面的内容,然后重定向。 因此,我在正文中添加了一个 id,并将显示设置为无,直到验证用户是否已登录。参见代码:

<script>
    const auth = firebase.auth()
    auth.onAuthStateChanged((user) => {
    if (user) {
      document.getElementById("body").style.display = "block";
    } else {
      window.location.replace("/login.html")
    }
  });
</script>

我的问题是:您认为这样做有什么问题吗? 这样做有什么安全问题吗?

不,当使用普通 Javascript 时,这样做完全没问题。即使您使用像 Vue 这样的现代框架,您也会存储一个数据变量isUserLoggedIn或其他东西来有条件地呈现 UI。

如果有人使用浏览器开发工具将显示设置为block ,只要您正确设置了安全规则,这就不是威胁。

这确实是一种相当常见且简单的方法,可以防止在等待确定用户身份验证 state 时出现过多的闪烁。

据我所知,防止 flash 的唯一更好(但更复杂)的方法是将您自己的标记值存储在本地存储中,Michael 在他的 I/O 演讲中展示了这一点: https://youtu.be/NwY6jkohseg?t =1309

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM