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

dev*_*v99 5 api-key github-pages openweathermap github-actions

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

简单的 HTML、CSS 和 vanilla JS

所以我想保持 repo 公开并使用 GitHub Pages 托管站点......但我的 js 文件包含运行时所需的 API 密钥。

额外信息:

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

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

Max*_*Max 7

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

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

有很多方法可以设置这样的后端。评论中链接的旧问题讨论了一些方法。请注意,如今,您可以使用无服务器 FaaS 服务,例如AWS LambdaAzure Functions

顺便说一句,这是一个完全有效的问题,您当然不会“太愚蠢”。祝你好运!