我将通过一个示例更好地解释问题,在此Firebase官方示例中https://office-mover-demo.firebaseapp.com/我可以在控制台中使用简单命令无需登录即可显示隐藏页面:
app.classList.remove('is-hidden');
是的,当然,只有用户成功登录才能访问firebase中的数据。所以我的问题是:只有在用户成功登录后才能显示html私有部分的结构吗? (仅限静态内容和firebase身份验证)
答案 0 :(得分:2)
来自Firebase documentation on monitoring authentication state:
// Create a callback which logs the current auth state
function authDataCallback(authData) {
if (authData) {
console.log("User " + authData.uid + " is logged in with " + authData.provider);
} else {
console.log("User is logged out");
}
}
// Register the callback to be fired every time auth state changes
var ref = new Firebase("https://<YOUR-FIREBASE-APP>.firebaseio.com");
ref.onAuth(authDataCallback);
在代码段调用console.log
的位置,您可以轻松地显示/隐藏HTML。
答案 1 :(得分:1)
我对这个问题的解决方案 - 据我所知 - 是在用户登录时设置一个包含用户ID的cookie,或者通过额外调用Firebase,只有登录客户端可见的秘密。然后,我的服务器可以读取cookie并确定用户是否有权查看内容,然后才下载它。因此,我使用Firebase进行身份验证,但我自己的服务器用于授权。
它可以工作,我也可以使用这种方法将用户登录到我的服务器,就像我收到了一个Oauth令牌一样。
但是,由于缺乏cookie经验,我想知道这有多安全!