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



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

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

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

服务器

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

客户端

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

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

最新更新