在部署Meteor应用程序时保护密钥的最佳方法是什么?

时间:2012-12-31 07:58:49

标签: deployment configuration meteor

我正在将Filepicker.io连接到我的meteor应用程序以进行文件上传。该服务有一个API密钥(当然)他们建议保密。我在github上发现了一些其他示例应用程序,其中filepicker机密在客户端代码的普通站点中。这看起来有点摇摇欲坠。即使它不在公共仓库中,因为它是在客户端代码中指定的,我可以使用Javascript控制台从应用程序中获取密钥(如果我需要的话)。

我想知道有一种方法可以隐藏秘密以及一个应用程序(比如heroku配置),这样可以很容易地保密密钥。

我目前的计划是将密钥放入数据库并锁定该模型,以便只能从服务器代码中获取。有更简单的方法吗?

感谢您的任何指示。

1 个答案:

答案 0 :(得分:7)

devel分支(即将在0.5.3中)有一个新的Meteor.settings功能:如果您将JSON文件作为参数传递给meteor runmeteor deploy ,该对象将在Meteor.settings服务器上可用。 (对于meteor deploy,这是持久的,因此您不必记住每次都传递它。)

(如果您使用自己的托管环境,则可以通过METEOR_SETTINGS环境变量传入JSON文件的内容。)

使用数据库也有效 - 这就是Meteor Accounts存储OAuth帐户配置的方式。我个人认为Meteor.settings最适合应用配置,而数据库最适合包配置,因为它允许包在第一次运行时显示交互式配置小部件,如accounts-ui