2016-02-10 42 views
0

我正在为一个使用Google captcha的Web应用程序开发一个大团队(大约15人)。您可能知道,必须有与URL关联的公共密钥和密钥。编译期间自动化变量值

我们有多种环境来测试我们的工作。因此,为了拥有有效的验证码,我们需要多个Google验证码密钥。

问题是,当我们提交我们的工作时,我们中的许多人修改了这些密钥,当我们部署它时,验证码不起作用,因为我们已经输入了无效值。

我正在寻找一种方法来自动执行此操作并解决此问题。我想有两个方面:

  • 把它们当成全局变量,当我们开始我们的应用程序的NodeJS,而且是一个非常大的字符串,要记住它,所以很容易当我们写他们的失败。

  • 自动化与詹金斯,bubt我不知道是否是一个很好的做法,在这一步添加它(我认为使shell脚本替换代码中的值 - 即CAPTCHA_KEY-)。

我不喜欢任何的这些想法,所以我愿意听到新的选择

+0

你可以利用环境变量:https://devcenter.heroku.com/articles/node-best-practices#be-environmentally-aware短版本:使用NOT版本文件来存储密钥/网址/无论配置和让你的代码加载这个配置文件。每个开发者都会拥有自己的文件,代码将会很常见并且不会被触发。 – Shanoor

回答

2

添加计算机上使用的环境变量的键。

的一个很好的例子可以在这个环节发现:Storing Keys

这也是很好的做法,因为你不应该犯和推动的钥匙回购。最好将任何带私人信息的文件添加到.gitignore,以便这些密钥不会与项目一起存储。如果项目遭到破坏,获取代码的人将不会拥有密钥,因为他们不会存储在回购站中。

+0

这是一个很好的选择!我们不能在该文件中使用.gitignore,因为我们使用另一个重要的变量(不是键,只是“全局”变量)。我真的很喜欢你回答@Mike!也很容易:) –

+0

很高兴你认为这会为你工作!另外,您应该尝试将这些密钥放入没有签入回购的文件中。如果你希望它们仍然在项目中(而不是在环境变量中),把它们放在一个单独的配置文件中,该配置文件不包含任何其他内容,以便你可以配置该配置文件。 – Mike