流星检查用户是否是管理员
Meteor Check if User is Admin
我有一个 Meteor 应用程序,如果用户是管理员,我需要在其中为该应用程序设置某种类型的变量,以便稍后我可以将其用于 show/hide 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,并将其与秘密字符串进行比较,然后设置一个变量,指示用户是否是我可以在应用程序的其余部分使用的管理员。我还需要它是安全的,这样客户端就不能仅仅将变量或其他任何东西设置为管理员。
Roles 包正是您所需要的,
要添加这个包,执行这个命令:
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
}
我有一个 Meteor 应用程序,如果用户是管理员,我需要在其中为该应用程序设置某种类型的变量,以便稍后我可以将其用于 show/hide 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,并将其与秘密字符串进行比较,然后设置一个变量,指示用户是否是我可以在应用程序的其余部分使用的管理员。我还需要它是安全的,这样客户端就不能仅仅将变量或其他任何东西设置为管理员。
Roles 包正是您所需要的,
要添加这个包,执行这个命令:
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
}