2 回答

TA貢獻1883條經(jīng)驗 獲得超3個贊
正如我在評論中所說,您擁有所需的一切(大部分情況下),您只需要添加“角色”......
你可以用很多方法來做到這一點(通常我會查看我正在使用的選項并決定特定項目的最佳方法 - 我通常最終使用 CLASS 而不是 ID - 個人偏好并取決于所有參與了)。在你的情況下,我遵循了你的代碼風(fēng)格(這很好,雖然有更短的方法來做事...... - 你會隨著時間的推移學(xué)習(xí)?。?/p>
因此,僅重用 D-skinner.html 的主體(其余代碼不影響這一點),您將得到類似的東西:
<body>
<div id="Folder1" style="visibility:hidden;">
<p>stuff for Folder 1</p>
</div>
<div id="Folder2" style="visibility:hidden;">
<p>stuff for Folder 2</p>
</div>
<div id="Folder3" style="visibility:hidden;">
<p>stuff for Folder 3</p>
</div>
<div id="AdminConsole" style="visibility:hidden;">
<p>stuff for Admin Console</p>
</div>
<div id="Logged_Out">
<h1>Please Login to D-Skinner Portal</h1>
<p>We understand that you want access to Portal, but we need your username and password, otherwise we can't let you in, sorry!</p>
<p>An alert has been sent to the D-Skinner team to alert them of this incident (just in case this was an accident), we will continue to monitor this IP Address and MAC Address for 1 hour to make sure that this isn't an attack.</p>
</div>
<div id="Logged_In">
<h1>D-Skinner - Portal</h1>
<p>We appreciate your beta testing, your login has been successful, please check with your beta co-ordinator to complete your beta.</p>
</div>
<script>
firebase.auth().onAuthStateChanged(function(user) {
if (user) {
// you already know this, but here is a great way to test this
console.log("user is now ", user);
// now in your console (differs by browser - internet search to see how to open yours) you will see the user info in an object.
// If user is logged in
var displayName = user.displayName;
var email = user.email;
var emailVerified = user.emailVerified;
// here you can verify everything if you like.....
console.log("displayName is ", displayName);
// I'll only include this one -you can do others as needed
document.getElementById("Logged_In").style.visibility = "show"
// HERE YOU TEST AND DO 'ROLE' THINGS (same as you did 'user'...)
// you did not include any way you are determining which role so I have to guess from the data you did provide.....
if(displayName === 'Person A'){
console.log("displayName ", displayName, " MATCHED here");
// you can do all the 'what they can see' here
// (there are easier and better ways, but this is simple and follows your style of coding)
document.getElementById("Folder1").style.visibility = "show";
document.getElementById("Folder2").style.visibility = "show";
document.getElementById("AdminConsole").style.visibility = "show";
}
if(displayName === 'Person B'){
console.log("displayName ", displayName, " MATCHED here");
// you can do all the 'what they can see' here
document.getElementById("Folder3").style.visibility = "show";
// etc
}
} else {
console.log(" NO USER - showing Logged_Out div"); document.getElementById("Logged_Out").style.visibility = "show"
}
});
</script>
</body>
同樣,您有基本概念 - 您只需要通過角色來完成它(并且由于您從未包括如何分配用戶和角色,您將需要修改上面的示例以適應(yīng)您正在做的事情)。

TA貢獻2011條經(jīng)驗 獲得超2個贊
我假設(shè)您知道每個人都可以訪問您的隱藏信息。
如果這不是什么秘密,那么您最好進行客戶端實施。但是,如果它是某種敏感數(shù)據(jù),您將在服務(wù)器端實現(xiàn)所有安全和過濾。
所以我會在服務(wù)器上放置授權(quán)和用戶驗證。前端只會呈現(xiàn)來自服務(wù)器的信息。
添加回答
舉報