我如何隐藏我的API密钥存储在JavaScript?



我希望我的API密钥是隐藏的,而不是公开暴露。

我可以想到一些如何传输API密钥的方法,通过document.getelementbyId,.queryselector,input - hidden;,但API密钥仍将在HTML页面上可见。

最好的解决方案是什么?

这里需要注意的重要因素是,任何JavaScript都是在客户端的机器上运行的.

这是他们的机器,他们完全控制它上运行的东西

你可以缩小,你可以模糊,你可以尝试所有可能的方法,但API密钥最终必须在客户端浏览器中以某种方式制定回来。由于客户端的浏览器是他们的,你基本上没有控制他们可以用API密钥做什么。另外,客户端浏览器中的network选项卡将显示web应用程序发出的所有请求,包括与API密钥一起发送的请求。

如果是需要API密钥的第三方外部API,解决方案是有一个端点为您进行身份验证,该端点充当前端应用程序和API之间的接口。

如果这是你自己的API &您需要公开不应该公开的API端点,您将需要一种验证用户身份的方法。从JSON web令牌开始将是一个很好的开始,但如何引入jwt将在很大程度上取决于你的应用程序。

将其作为变量放在.env文件中并将其导出到需要它的文件中,.env文件并不总是显示给浏览器

例子;创建一个文件api.env,然后在文件:

const key = "your API KEY goes here"

然后导出它(key)到您需要它的文件。

.env文件永远不会显示到前端

最新更新