【问题标题】:nuxt: pass data from server plugin to clientnuxt:将数据从服务器插件传递到客户端
【发布时间】:2020-07-15 21:23:33
【问题描述】:

我在身份验证代理后面有一个 nuxt。请求将到达 nuxt(仅当)它被授权,在这种情况下将设置 X-auth-username(和其他)标头。

我发现,使用服务器插件,我可以在请求中读取此信息。但是,数据不会从服务器发送到客户端。如何让服务器向客户端发送信息标头(尤其是用户名)?

到目前为止我的插件:


import { Plugin } from '@nuxt/types'
import { IncomingHttpHeaders } from 'http'

declare module '@nuxt/types' {
  interface NuxtAppOptions {
    $headers: IncomingHttpHeaders
  }
}

const getAuth: Plugin = (context, inject) => {
  const headers = context.req.headers
  inject('headers', headers)
}

export default getAuth

注意我使用的是nuxt-composition-api,而不是 vuex。

【问题讨论】:

  • 您可以使用服务器中间件来实现这一点。 nuxtjs.org/api/configuration-servermiddleware
  • @BillSomen 这让我可以访问请求,但是我如何/在哪里将信息传递给客户? (我已经在服务器插件中访问了请求——所以这本身不是问题。)

标签: nuxt.js


【解决方案1】:

Injected header 应该在模板中以 $headers 的形式提供,或者在组件的生命周期方法中以 this.$headers 的形式提供。

【讨论】:

  • 当我在服务器上注入时,我在服务器中看到它。任务是在从服务器上的请求中读取它之后将其发送给客户端。现在我把它放在一个 cookie 中,这似乎可行,但我更愿意将它放入 webpack 包中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多