我如何将 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 环境变量的最简单方法是什么?
看到这个 ,但它仍然使用我没有使用的节点。
经过更多的阅读,我知道了两件事。
如何做到这一点。 This video was helpful.
你不应该这样做来试图隐藏 API 秘密或密钥。
虽然密钥确实不会在您的源代码中,但问题是一旦 Netlify 替换了 API 秘密或密钥,客户端就可以看到它们。不好。
问题:客户端没有“秘密”。
一个常见的误解是您可以在 React 应用程序中存储秘密……尽管我试图在 docs.
中阐明这一点
为避免暴露您的 API 密钥,您需要在服务器上存储和读取密钥。这意味着您需要使用服务器端框架构建应用程序,例如 Node.js.
推荐解决方案:Netlify 函数
Netlify Functions 是在同一个 repository/deployment.
中创建端点的便捷方式
替代解决方案:单独 API
创建一个单独的 API 从第三方 API 和 returns 获取数据。
考虑使用 CORS
保护您的 API/function
您可以通过实施 CORS 仅允许从您的前端域获取数据,让其他网站更难(有解决方法)使用您的 API。
我没有使用 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 环境变量的最简单方法是什么?
看到这个
经过更多的阅读,我知道了两件事。
如何做到这一点。 This video was helpful.
你不应该这样做来试图隐藏 API 秘密或密钥。
虽然密钥确实不会在您的源代码中,但问题是一旦 Netlify 替换了 API 秘密或密钥,客户端就可以看到它们。不好。
问题:客户端没有“秘密”。
一个常见的误解是您可以在 React 应用程序中存储秘密……尽管我试图在 docs.
中阐明这一点为避免暴露您的 API 密钥,您需要在服务器上存储和读取密钥。这意味着您需要使用服务器端框架构建应用程序,例如 Node.js.
推荐解决方案:Netlify 函数
Netlify Functions 是在同一个 repository/deployment.
中创建端点的便捷方式替代解决方案:单独 API
创建一个单独的 API 从第三方 API 和 returns 获取数据。
考虑使用 CORS
保护您的 API/function您可以通过实施 CORS 仅允许从您的前端域获取数据,让其他网站更难(有解决方法)使用您的 API。