这对于存储 API 密钥或其他敏感信息非常有用。据我了解,您可以在本地使用配置文件,但它们在meteor.com 上不起作用,但我听说环境变量很快就会得到支持,或者已经在最近的版本中得到支持,但我不能找到任何例子。
有人可以提供一个如何从环境变量或其他安全位置检索值的示例吗?
这对于存储 API 密钥或其他敏感信息非常有用。据我了解,您可以在本地使用配置文件,但它们在meteor.com 上不起作用,但我听说环境变量很快就会得到支持,或者已经在最近的版本中得到支持,但我不能找到任何例子。
有人可以提供一个如何从环境变量或其他安全位置检索值的示例吗?
您实际上可以访问该process
对象以检索 Meteor 中的环境变量。本质上,只需执行与此解决方案相同的操作
经过一番思考,将它们全部存储在.js
对象文字内的文件中,将该文件添加到,并使用虚拟或空白值.gitignore
签入相应的文件就可以了。.js.sample
有一种更好的方法来处理环境变量。如果您来自 Ruby on Rails,那么您习惯于在.ENV
文件或config/application.yml
文件中设置环境变量。
Meteor 以类似的方式处理环境变量。
在server
项目的文件夹中,创建一个文件并将其命名为settings.json
. 将此文件添加到您的 gitignore 文件中。
在此 JSON 文件中,您可以保存所需的任何环境变量。
{
"facebookAppId": "6666667527666666",
"facebookAppSecret": "00004b20dd845637777321cd3c750000",
"amazonS3Bucket": "bucket-name"
}
要在运行时在应用程序中使用这些值,请使用--settings
选项标志启动 Meteor。
$ meteor run --settings server/settings.json
要使用这些值,只需调用Meteor.settings
对象。
ServiceConfiguration.configurations.upsert(
{ service: "facebook" },
{
$set: {
appId: Meteor.settings.facebookAppId,
secret: Meteor.settings.facebookAppSecret
}
}
);
这里的所有都是它的!确保您的设置安全,不要提交您的密钥。