如何将代码推送到Github隐藏API密钥?

e4eetjau  于 2023-05-21  发布在  Git
关注(0)|答案(5)|浏览(194)

我想把一些代码推送到我的GitHub仓库。这些代码是不同的语言,如JavascriptJavaPython等。其中一些代码包含一些我不想发布的私有API密钥。
有没有办法自动隐藏密钥?我应该手动从代码中删除它吗?
有很多项目我想推到GitHub上。因此,手动删除不是一个好的选择。

guicsvcw

guicsvcw1#

您应该考虑使用.env文件并从环境变量中读取键。如何做到这一点取决于您使用的语言和工具(node.jsphp等)。
您可以通过将.env添加到.gitignore来从提交中排除.env文件。您还可以上传一个示例配置.env.example,其中包含虚拟数据或空白,以显示您的应用程序所需的模式。

d8tt03nd

d8tt03nd2#

任何时候,您的文件中包含敏感数据,例如

config.yml

你不能把它们提交到你的仓库。我给你举个例子。
假设您有一个yaml文件,其中包含一些用户名和密码:

# app/config/credentials.yml
credentials:
    username: foo
    password: bar

如果你想隐藏foobar的值,从你的仓库中删除这个文件,但是添加一个distribution文件,它的目的是维护用户名和密码字段,但是没有任何真实的的值:

# app/config/credentials.yml.dist
credentials:
    username: ~
    password: ~

在安装过程中,您可以通过将app/config/credentials.yml.dist复制到app/config/credentials.yml来获取此文件。
另外,请记住将app/config/credentials.yml添加到.gitignore文件中。
API keys也是一样:

# app/config/config.yml
config:
    credentials:
        username: foo
        password: bar
    api_stuffs:
        api_foo: fooooo
        api_secret: baaaaar
        api_token: tooooken

这对于配置文件非常有效,并且是一种很好的模式,可以在每次需要共享配置结构而不是敏感数据时节省您的时间。初始化文件、配置等。

izj3ouym

izj3ouym3#

无论如何,在代码中使用API密钥可能是一个坏主意。这意味着任何想要使用您的代码的人都必须编辑代码并重新构建它。
对于这种情况,教科书上的解决方案是将凭证移动到某个配置文件中,并在README.md文件中添加有关配置文件的结构和位置的清晰文档。您还可以在gitignore文件中添加一个条目,以防止您自己(和其他任何人)错误地将您的私人信息推送到GitHub。

thigvfpy

thigvfpy4#

您可以在服务器中添加enviornment variables来隐藏API密钥。所有流行的编程语言都有默认的方法来访问环境变量。

e0uiprwp

e0uiprwp5#

以上所有答案都很好,但我认为作为初学者,文档很难。因此,我总结一切与图片在这个解决方案
第0步:在终端中写入npm i dotenv -- save,安装env文件的包。
第一步:创建.env文件。请注意,不要给予文件命名,只需创建一个.env文件本身。Click on the image if doubt in step 1
第二步::现在在文件中添加API密钥,如(API_KEY = jkdjkjkl34334342)。Click on the image if doubt in step 2
第三步:在你正在使用的js文件中,只需添加以下代码行:

require('dotenv').config();
const apikey= process.env.API_KEY;

Click on the image if doubt in step 3

相关问题