秘密环境变量破坏了 Netlify 上的 NextJS 构建

问题描述 投票:0回答:1

我在 Netlify 上构建的 NextJS 由于秘密环境变量而失败。

我的应用程序与 Spotify API 交互。我需要为 Spotify 和 NextAuth 设置机密。

这些变量是在 Netlify 上创建的并标记为秘密。

我的代码仅在几个地方通过如下变量引用它们,它们从未被硬编码。在我本地,这些变量位于 .env 文件中,而在 Netliffy 上,它们在控制面板上设置。

    clientId: process.env.SPOTIFY_CLIENT_ID!,
    clientSecret: process.env.SPOTIFY_CLIENT_SECRET!,
    secret: process.env.NEXTAUTH_SECRET,

构建中的错误如下所示:

秘密扫描在构建输出或存储库代码中发现了 97 个秘密实例。检测到秘密环境变量“SPOTIFY_CLIENT_SECRET”的值

我对其进行了试验并在本地运行了构建。然后我在 .next 文件夹中搜索这些键的值,发现该值在 6 个文件中出现了 8 次。但我不知道这些文件是否可以公开访问。这些是文件:

/.next/required-server-files.json
/.next/standalone/.next/required-server-files.json
/.next/server/app/api/auth/[...nextauth]/route.js
/.next/standalone/.next/server/app/api/auth/[...nextauth]/route.js
/.next/standalone/.env
/.next/standalone/server.js

所以我的两个问题是:

  1. 以上文件可以公开访问吗?

  2. Netlify 有关于我们可以使用的某些变量的文档,因此这些秘密变量将被忽略。但将它们设置为秘密然后忽略它们有什么意义呢?我为什么要费心将它们设置为秘密呢?`

我希望我的秘密变量保持秘密。

next.js build netlify secret-key
1个回答
0
投票

简短回答:清除 Netlify 缓存并查看解决方案

长答案:可能发生的情况是,您在 Netlify 中定义秘密环境变量之前将代码推送到 git。因此,Netlify 在定义 Secret 变量之前构建并缓存了对它们的引用。重建时,Netlify 认为它在 git 代码中找到了对秘密变量的引用。

解决方案:Netlify 项目 > 已发布部署 > 重试或选项 > 清除缓存并使用最新分支重试提交

© www.soinside.com 2019 - 2024. All rights reserved.