在 AngularJS 和 NodeJS 中隐藏 API 密钥并推送到 Git 和 Heroku

Posted

技术标签:

【中文标题】在 AngularJS 和 NodeJS 中隐藏 API 密钥并推送到 Git 和 Heroku【英文标题】:Hiding API Keys in AngularJS and NodeJS and pushing to Git and Heroku 【发布时间】:2016-06-13 18:45:48 【问题描述】:

我在 AngularJS 和 NodeJS 文件中都使用 API 密钥,最终目标是将我的应用程序文件推送到 Git 和 Heroku。但是,我不希望这些密钥公开。我该如何隐藏这些键?我听说有人说要把它们放在服务器端的隐藏文件中,而不是放在客户端。如果是这种情况,如何从客户端 javascript 访问我存储在服务器端的 API 密钥?

另外,当我将文件推送到 Git 和 Heroku 时,我是否只是将这些隐藏文件放在 .gitignore 中,以便它们只是我的本地系统,还是有其他方法可以解决这个问题?最好的解决方案是什么?

【问题讨论】:

【参考方案1】:

你最好的办法是写几个本地触发器

预推送:删除/清除键 post-push:把它们放回去

否则你想要的并不是 git 感兴趣的领域的一部分

READ MORE

【讨论】:

【参考方案2】:

如果您希望从本地计算机部署:

将任何数据提交到您的 repo(当然是假的,或者根本不提交任何数据)。

现在使用assume-unchanged 标志并将文件标记为未更改且不会被跟踪。 https://git-scm.com/docs/git-update-index

--[no-]假设不变

指定此标志时,不会更新为路径记录的对象名称。

相反,此选项设置/取消设置路径的“假定不变”位。

当“假设不变”位打开时,用户承诺不会更改文件并允许 Git 假设工作树文件与索引中记录的内容匹配。如果要更改工作树文件,则需要取消设置以告知 Git。在处理 lstat(2) 系统调用非常慢(例如 cifs)的文件系统上的大型项目时,这有时会很有帮助。

如果需要修改索引中的这个文件,Git 将失败(优雅地),例如合并提交时;因此,如果假定的未跟踪文件在上游发生更改,您将需要手动处理这种情况。

【讨论】:

以上是关于在 AngularJS 和 NodeJS 中隐藏 API 密钥并推送到 Git 和 Heroku的主要内容,如果未能解决你的问题,请参考以下文章

在哪里以及如何将 nodejs 与 angularjs 一起使用

如何使用 NodeJS + AngularJS 从文件中删除一些奇怪的错误

使用 nodejs、angularjs 和 paypal sdk 付款结果 cors 错误

在 AngularJS 和 Nodejs 之间共享代码

AngularJS、nodeJS、ReferenceError:未定义要求

在angularjs中显示和隐藏表格行