Nuxt 3 插件在访问私有配置时抛出错误

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

我有一个简单的插件,需要访问一些 API 凭据,以便可以在页面中获取数据。我假设鉴于这些凭据是私有的,它们应该not在公共配置中:

runtimeConfig: {
    contentful: {
        environment: '',
        spaceId: '',
        accessToken: ''
    },
},

然后在我用来初始化 API 客户端的插件中:

import { createClient } from "contentful";

export default defineNuxtPlugin(nuxtApp => {

  const runtimeConfig = useRuntimeConfig()

  const client = createClient({
    space: runtimeConfig.contentful.spaceId,
    accessToken: runtimeConfig.contentful.accessToken,
    environment: runtimeConfig.contentful.environment
  })

  console.log(runtimeConfig.contentful)

  return {
    provide: {
      contentful: client
    }
  }
})

变量在 SSR 上可用(

console
行显示)但后来我在浏览器中收到此错误:

Expected parameter space

at createClient (http://localhost:63921/_nuxt/node_modules/.vite/deps/contentful.js?v=18c196e8:5296:11)
at http://localhost:63921/_nuxt/plugins/example.js:10:18
at fn (http://localhost:63921/_nuxt/node_modules/nuxt/dist/app/nuxt.mjs?v=18c196e8:146:27)
...

如果我改用公共运行时,它工作正常。鉴于我不想公开 API 访问令牌,我曾假设这不安全。还是我理解错了?

javascript nuxt.js nuxtjs3
1个回答
0
投票

没有

.server
.client
后缀的插件是全局的,可以在服务器和客户端上工作。如果你想在服务器端使用 API 中的秘密,请在你的插件中添加
example.server.ts
后缀。

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