vue.js 使用nuxt 3访问局部变量中的私有变量?

x33g5p2x  于 2022-12-14  发布在  Vue.js
关注(0)|答案(1)|浏览(155)

我正在nuxt 3中创建一个项目,我正在使用runtimeConfig,我做了一些研究,发现我可以创建私有变量(在客户端可以访问)和私有变量,这些变量不会被暴露。

runtimeConfig: {
  API_TOKEN_MAILERLITE: process.env.API_TOKEN_MAILERLITE,
  public: {
    API_BASE_MAILERLITE_URL: process.env.API_BASE_MAILERLITE_URL,
  },
},

我的疑问是,例如,我有一个apiKey连接到外部服务,这个键我必须把它作为私有的,因为我不希望它在生产中被公开,我必须作为私有变量访问它:

runtimeConfig.API_TOKEN_MAILERLITE

但这样一来,它在本地是不可访问的,我将它作为未定义的,因此,如果我无法访问令牌,我如何填充此服务(除非我手动更改代码,但我尽量避免每次在本地测试时都必须更改代码)

v8wbuo2f

v8wbuo2f1#

您不能从客户端访问私有变量,但为了进行测试,您可以使用以下方法:

<script setup>
const config = useRuntimeConfig();
console.log("Runtime config:", config);
if (process.server) {
  console.log("API secret:", config.apiSecret);
}
</script>

在浏览器日志中看不到API secret,但可以在编辑器终端中查看

console.log(runtimeConfig.apiSecret) // The private keys which are only available server-side
console.log(runtimeConfig.public.apiBase) //// Keys within public are also exposed client-side

相关问题