我正在尝试访问Meteor客户端的secretKey。我知道使用Meteor.settings(http://docs.meteor.com/#/full/meteor_settings)似乎是访问机密的最佳方式。
我的settings.json看起来像这样:
{
"public": {
"secretKey": "topsecret!"
}
}
我需要在客户端javascript上访问secretKey。但是,当我进入浏览器并在控制台中时,我只需键入Meteor.settings.public.secretKey
,键就会就在那里!
我是否有更好的方法在客户端存储和访问此密钥?
答案 0 :(得分:1)
如果要从客户端访问私有内容,则必须使用用户帐户执行一些基本权限处理。
Meteor.methods({
getSecretKey: function(){
var user = Meteor.users.findOne(this.userId);
if(!user){
throw new Meteor.Error("login-error", "You must be logged in.");
}
if(!Roles.userIsInRole(user, "admin")){
throw new Meteor.Error("admin-error", "You must be an admin.");
}
return Meteor.settings.secretKey;
}
});
此伪代码使用一种方法从客户端检索密钥,并alanning:roles
执行简单的用户角色检查。