我想将一些代码推向我的github存储库。这些代码使用不同的语言,例如Javascript
,Java
,Python
等。其中一些代码包含一些我不想发布的私有API
密钥。
有什么方法可以自动隐藏密钥。我应该手动从代码中删除它吗?
我想将许多项目推向github。因此,手动删除不是一个不错的选择。
您应该考虑使用.env
文件并读取环境变量的键。这样做的方法取决于您使用的语言和工具(对于node.js,php等(。
您可以通过将.env
添加到.gitignore
中将.env
文件排除在提交中。您还可以使用虚拟数据或空白上传示例配置.env.example
,以显示您的应用程序所需的模式。
config.yml
您不得将它们提交给您的存储库。我会告诉你一个例子。
假设您有一个带有一些用户名和密码的YAML文件:
# app/config/credentials.yml
credentials:
username: foo
password: bar
如果要隐藏foo
和bar
值,请从存储库中删除此文件,但要添加旨在维护用户名和密码字段的distribution
文件,但没有任何实际值:
# app/config/credentials.yml.dist
credentials:
username: ~
password: ~
在安装期间,您可以通过将app/config/credentials.yml.dist
复制到app/config/credentials.yml
。
另外,请记住将app/config/credentials.yml
添加到您的.gitignore
文件。
与API键相同:
# app/config/config.yml
config:
credentials:
username: foo
password: bar
api_stuffs:
api_foo: fooooo
api_secret: baaaaar
api_token: tooooken
这对配置文件非常有效,并且是一个很好的模式,每当您需要共享配置的结构而不是敏感数据时,可以节省您。初始文件,配置等。
在代码中将API键带入可能是一个坏主意。这意味着任何想要使用您的代码的人都必须编辑代码并重建代码。
此类用途的教科书解决方案是将凭据移至某些配置文件,并在README.md
文件中添加有关配置文件的结构和位置的清晰文档。您也可以在gitignore
文件中添加一个条目,以防止自己(和其他任何人(错误地将您的私人信息推向GitHub。
您可以在服务器中添加环境变量以隐藏API键。所有流行的编程语言都有默认方法来实现环境变量。
上述所有答案都不错,但我认为作为初学者,文档很困难。因此,我正在用此解决方案中的图片总结所有内容
步骤0 :在终端中写npm i dotenv -- save
以安装env文件。
步骤1 :创建一个文件.env
。请注意,不要给文件名提供名称,只需创建.env文件本身即可。如果在步骤1中疑问,请单击图像
步骤2::现在在文件中添加您的API键,例如(api_key = jkdjkjkl343434342(。如果在步骤2
中疑问,请在图像上单击。步骤3 ::在JS文件中,您正在使用以下代码的行:
:require('dotenv').config();
const apikey= process.env.API_KEY;
如果在步骤3中疑问,请单击图像
- 现在可以轻松地使用当前JS文件中的API密钥。只需在.gitignore文件中添加.env即可。单击图像如果在步骤4中疑问