我正在将Filepicker.io连接到我的meteor应用程序以进行文件上传。该服务有一个API密钥(当然)他们建议保密。我在github上发现了一些其他示例应用程序,其中filepicker机密在客户端代码的普通站点中。这看起来有点摇摇欲坠。即使它不在公共仓库中,因为它是在客户端代码中指定的,我可以使用Javascript控制台从应用程序中获取密钥(如果我需要的话)。
我想知道有一种方法可以隐藏秘密以及一个应用程序(比如heroku配置),这样可以很容易地保密密钥。
我目前的计划是将密钥放入数据库并锁定该模型,以便只能从服务器代码中获取。有更简单的方法吗?
感谢您的任何指示。
答案 0 :(得分:7)
devel
分支(即将在0.5.3中)有一个新的Meteor.settings
功能:如果您将JSON文件作为参数传递给meteor run
或meteor deploy
,该对象将在Meteor.settings
服务器上可用。 (对于meteor deploy
,这是持久的,因此您不必记住每次都传递它。)
(如果您使用自己的托管环境,则可以通过METEOR_SETTINGS
环境变量传入JSON文件的内容。)
使用数据库也有效 - 这就是Meteor Accounts存储OAuth帐户配置的方式。我个人认为Meteor.settings
最适合应用配置,而数据库最适合包配置,因为它允许包在第一次运行时显示交互式配置小部件,如accounts-ui
。