在 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 错误