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

问题描述 投票:0回答:3

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

我已经读过我需要创建一个文件,该文件应该包含一个带有我的密钥的变量,然后只使用该变量代替密钥,但是,我不知道如何去做这个。任何提示和指示将不胜感激。

javascript github
3个回答
1
投票

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

将它放在变量中只意味着它只出现在源代码中的一个位置。在那里以及发送到API的每个请求中都可以看到它(可以通过浏览器的开发人员工具中的“网络”选项卡轻松找到它)。

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


0
投票

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


0
投票

如果您不能依赖服务器来存储它,如上所述,您可以将其存储在ENV变量模板中。

auth.ENV.dist

NODE_ENV=''
PORT=''
# Set your database/API connection information here
API_KEY=''
API_URL=''

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

tons of articles涵盖主题,只是看看在哪里以及如何使用.ENV文件。

这还允许在(IE)测试,登台和生产环境中分割您的身份验证的行为。

编辑:

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

© www.soinside.com 2019 - 2024. All rights reserved.