我的代码在多个位置使用带有密钥的API。如何在不上传密钥的情况下将代码上传到GitHub?

时间:2019-03-06 16:08:01

标签: javascript github

该项目是Vue SPA,我的两个组件必须使用秘密密钥向API发出GET请求。我目前想将项目上传到GitHub页面,但是,我不想上传密钥。

我已经读到我需要创建一个文件,该文件应包含一个带有我的密钥的变量,然后仅在私有密钥的位置使用该变量,但是,我不确定如何执行此操作。任何提示和指示,将不胜感激。

3 个答案:

答案 0 :(得分:1)

如果使用密钥客户端,则将其公开给应用程序的每个用户。

将其放入变量仅表示其仅在源代码中的一个位置出现。在该位置以及发送给API的每个请求中,它仍然可见(可以在浏览器开发人员工具的“网络”标签中轻松找到该请求)。

要保密,您需要编写服务器端代码以访问API,然后通过其他某种机制(通常是您自己的Web服务)将数据公开给Vue应用。

答案 1 :(得分:0)

您可以使用不属于源代码的环境文件,并通过dotenv程序包或类似程序将其加载到前端代码中

答案 2 :(得分:0)

如果您不能像上面建议的那样依赖服务器来存储它,则可以将其存储在ENV变量模板中。

auth.ENV.dist

`python client.py --server=172.17.0.2/16:9000 --image=./test_images/image2.jpg

debug_error_string = "{"created":"@1551888435.208113000","description":"Failed to create subchannel","file":"src/core/ext/filters/client_channel/client_channel.cc","file_line":2267,"referenced_errors":[{"created":"@1551888435.208109000","description":"Name resolution failure","file":"src/core/ext/filters/client_channel/request_routing.cc","file_line":165,"grpc_status":14}]}"`

注意:这是在.ENV文件中设置身份验证密钥的一种常见做法,并且由于各种原因,它比从服务器检索它更常见。 IE至少但不是最后一个原因:为了安全地检索那些参数,您必须存储另一个身份验证令牌或依赖与部署环境相关的其他参数(IP或类似参数)。

tons of articles涵盖了该主题,只需看看在何处以及如何使用.ENV文件即可。

这还可以在(IE)测试,登台和生产环境中拆分身份验证的行为。

编辑:

This article非常完整,并考虑了许多具有优点和缺点的场景,它还揭示了服务器端密钥管理的体系结构。