我正在使用
nuxt.js
使用预渲染 html 页面的通用模式,并从 Google reCaptcha 获得我的密钥。
nuxt.js
应用程序中的哪个位置是存储密钥的最佳位置?它们在 env
中的 nuxt.config.js
对象中起作用吗?
export default {
env: {
secret: process.env.SECRET
}
}
当应用程序是用
nuxt generate
生成并且应用程序是客户端时,它是如何工作的? env 文件保留在服务器上,从未暴露给客户端,或者所有内容都经过编译和打包以发送给客户端吗?
如果您有 Nuxt 2.13+,则可以在
privateRuntimeConfig
中使用 nuxt.config.js
。在那里你可以链接到你的 .env,密钥将被注入到服务器,并且在前端不可见。
应该保存所有私有的环境变量 并且不应在前端公开。这可能包括一个 例如,参考您的 API 秘密令牌。privateRuntimeConfig
您不应将密钥存储在客户端上。 密钥的目的 - 验证用户的响应。您需要将其与适当的代码一起存储在后端以进行验证(https://developers.google.com/recaptcha/docs/verify)
在 nuxt 3 中,私有和机密必须位于 nuxt.config.ts 文件的 runtimeConfig 中。
请参阅https://nuxt.com/docs/getting-started/configuration#environment-variables-and-private-tokens