我创建了一个使用Firebase作为数据存储,实时更新和托管后端的Web应用程序。
移动大多数客户端的东西非常灵活,但安全问题是一个很重要的问题。
要访问Firebase上的数据,Firebase安全规则会处理大多数事情。但是,当使用Firebase进行托管时,我觉得访问某些路线时缺乏安全性。
目前,在页面加载时,我可以检查用户是否已登录。如果用户未登录(或者如果身份验证令牌无效)我可以重定向用户到不同的页面(即登录页面)。但是,我的问题是如果该页面上的静态html中嵌入了我不希望未经授权的用户看到的信息会怎样?
我觉得我收到的第一个答案是,"数据应保存在Firebase变量中,并且仅在授权成功时才加载。"虽然这是一个有效的选项,但我认为将HTML(或者甚至只是文本的段落)存储为Firebase变量是很糟糕的,并且应该有更好的方法。
最初我认为这将是firebase.json
文件中的固有选项,因为可以定义重定向,标题等。但是,firebase.json
中没有任何内容可用于安全性(例如firebase-security.json
1}})这将允许我执行auth
检查,如下所示:
{
"firebase": "myfirebase",
"public": "app",
"ignore": [],
"rules": "config/security-rules.json",
"routes": [ {
"source" : "/for_authorized_only/",
"destination": "/authorized_page.html",
"auth": true, //Must be authorized
}, {
"source": "/some_public_route",
"destination": "index.html",
"auth": false, //No auth required to access this page
} ]
}
我还没有尝试过AngularJS或AngularFire,但在搜索了一下之后,看起来angularFire-seed项目似乎包含路由安全性,但是这应该包含在Firebase中而不是依赖于另一个框架!
我有什么东西可以让我完成这个吗?