我如何将 Netlify 的环境变量与 vanilla JavaScript 一起使用?

How do I use Netlify's environment variables with vanilla JavaScript?

我没有使用 React 或 Node。我想为我不想提交给 Github 的小项目使用 API 密钥。 Netlify 内置了 environment variables.

您在 Netlify 中将它们设置在名称密钥对中,例如

SECRET_NAME = 密钥

当网站构建时,Node 会将我使用的任何地方 process.env.SECRET_NAME 替换为密钥。

但我没有使用 Node 或构建过程,所以当我在我的代码中调用 process.env.ENV_VAR_NAME 时,它当然会失败并显示错误 Uncaught ReferenceError: process is not defined

仅使用 vanilla Javascript 使用 Netlify 环境变量的最简单方法是什么?

看到这个 ,但它仍然使用我没有使用的节点。

经过更多的阅读,我知道了两件事。

  1. 如何做到这一点。 This video was helpful.

  2. 你不应该这样做来试图隐藏 API 秘密或密钥。

虽然密钥确实不会在您的源代码中,但问题是一旦 Netlify 替换了 API 秘密或密钥,客户端就可以看到它们。不好。

问题:客户端没有“秘密”。

一个常见的误解是您可以在 React 应用程序中存储秘密……尽管我试图在 docs.

中阐明这一点

为避免暴露您的 API 密钥,您需要在服务器上存储和读取密钥。这意味着您需要使用服务器端框架构建应用程序,例如 Node.js.

推荐解决方案:Netlify 函数

Netlify Functions 是在同一个 repository/deployment.

中创建端点的便捷方式

替代解决方案:单独 API

创建一个单独的 API 从第三方 API 和 returns 获取数据。

考虑使用 CORS

保护您的 API/function

您可以通过实施 CORS 仅允许从您的前端域获取数据,让其他网站更难(有解决方法)使用您的 API。