如果我不想使用Session变量,如何在myapp.js文件中使用全局变量?

时间:2013-12-16 19:31:09

标签: meteor

由于安全问题,我不想使用Session。在Meteor应用程序中使用全局变量的遵循做法是什么?他们不一定是Handlebars帮手btw。

1 个答案:

答案 0 :(得分:6)

假设您有一些名为superSecretKey的秘密信息。

将其填充到全局变量(window.superSecretKey)显然不比Session.get('superSecretKey')更安全。稍微好一点的方法是使用方法(仅因为它不会将变量保存在客户端上)。例如:

服务器

Meteor.methods({
  getSuperSecretKey: function() {
    return 'abc123';
  }
});

客户端

Meteor.call('getSuperSecretKey', function(err, key) {
  // do something useful with key
});

除此之外,在不暴露superSecretKey的情况下在服务器上执行的操作越多越好。例如,假设您需要通过需要superSecretKey的REST接口删除文件。您可以传递密钥并让客户端删除该文件,但更安全的解决方案是让服务器为您处理所有事情。