Meteor - 如何在客户端安全地存储和访问settings.json变量?

时间:2015-06-17 01:49:30

标签: javascript meteor

我正在尝试访问Meteor客户端的secretKey。我知道使用Meteor.settings(http://docs.meteor.com/#/full/meteor_settings)似乎是访问机密的最佳方式。

我的settings.json看起来像这样:

{
  "public": {
    "secretKey": "topsecret!"
  }
}

我需要在客户端javascript上访问secretKey。但是,当我进入浏览器并在控制台中时,我只需键入Meteor.settings.public.secretKey,键就会就在那里!

我是否有更好的方法在客户端存储和访问此密钥?

1 个答案:

答案 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执行简单的用户角色检查。