1
我有一个流星应用程序,如果用户是管理员,我需要为应用程序设置某种类型的变量,以便日后可以使用它显示/隐藏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的网站是由客户端加载并进行比较到秘密字符串,然后设置一个变量,指出用户是否是我可以在应用程序的其余部分使用的管理员。我也需要它是安全的,所以客户端不能设置变量或其他任何东西作为管理员。
在您的方法中,代码位于客户端,秘密位于客户端的Cookie中,匹配的秘密也位于您上述的客户端代码中。你甚至可以命名“isAdmin”函数使其更容易找到。那里没有安全。 –
这就是为什么我试图找出正确的方法来做到这一点。 –
@adlen回答说:角色是一个开始的好地方 –