如何在 GitHub public 存储库中隐藏 API 密钥?

How can I hide an API key in a GitHub public repo?

我正在做一个简单的前端项目,我(或用户)对 openweathermap api 进行 API 调用,获取天气信息并将其显示在网站上。

简单 HTML、CSS 和普通 JS

所以我想保留回购 public 并使用 GitHub 页面托管网站...但是我的 js 文件包含运行时需要的 API 键。

额外信息:

(这都是我搜索时发现的)

我知道有一种方法可以将 API 密钥保存在 GitHub 秘密中,然后在 yml 文件中将其作为 GitHub 操作中的环境变量引用。 但是,对于访问我网站的任何用户,我如何才能在运行时将该秘密放入 js 代码中?

请注意,您尝试执行的操作并不安全。即使有一种方法可以让 GH Pages 在请求时将秘密 API 密钥注入 js 文件,每个 Web 客户端都会拥有该 js 文件的副本,其中嵌入了明文密钥。

您将需要某种最小的后端来安全地存储 API 密钥并将调用从您的静态网页中继到 openweathermap API。

有很多方法可以设置这样的后端。 older question linked in the comments discusses some approaches. Note that nowadays, you could use a serverless FaaS service such as AWS Lambda or Azure Functions.

顺便说一句,这是一个完全有效的问题,你肯定不是“太笨”。祝你好运!