[英]Meteor Check if User is Admin
我有一個Meteor應用程序,如果用戶是管理員,則需要為該應用程序設置某種類型的變量,以便以后可以使用它顯示/隱藏HTML的某些元素。 為了弄清楚用戶是否是管理員,我必須檢查設備上LocalStorage中的對象,看看它是否與秘密字符串匹配,這將授予用戶管理員訪問權限。 但是,我不希望客戶端看到秘密字符串。 現在,我有一個文件server/server.js
,它具有如下功能:
function isAdmin(cookie) {
if(cookie == "secret") {
return true;
} else {
return false;
}
}
但是,看來我無法從我的主.js文件訪問該函數,而我正在使用的應用程序是這樣的:
Meteor.startup(function(){
admin = false;
if(typeof(Storage) !== "undefined") {
cookie = localStorage.getItem("admin");
admin = isAdmin(cookie);
}
});
我不知道是否要嘗試解決此錯誤,我需要做的就是每次由客戶端加載站點時都檢查localStorage中是否有cookie,並將其與秘密字符串進行比較,然后設置一個變量,指示用戶是否是管理員,我可以在應用程序的其余部分中使用該管理員。 我還需要它的安全性,以便客戶端不能僅將變量或其他任何內容設置為管理員。
角色包正是您所需要的,
要添加此軟件包,請執行以下命令:
meteor add alanning:roles
您可以像這樣向用戶添加角色:
Roles.addUsersToRoles(someUserId, 'super-admin', Roles.GLOBAL_GROUP)
然后您可以驗證用戶是否具有以下角色:
if (Roles.userIsInRole(someUserId, ['super-admin'], 'real-madrid.com')) {
// if a user has the 'super-admin' role he will be able to access here
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.