1

我尝试将 nux.js 与 apollo 一起使用。我必须发送一个授权标头。在我的 nuxt.config.js 中试试这个:

    apollo: {
    clientConfigs: {
      default: {
        httpEndpoint: 'https://graphql.fauna.com/graphql',
        headers: {
          Authorization: 'Bearer xxxxxx'
        }
      }
    }
  }

但是尝试进行查询时出现此错误:

“GraphQL 错误:缺少授权标头”。

如何发送标头?

此致

4

3 回答 3

0

如果您将令牌存储在 cookie 中,您可以使用 tokenName 属性来指定令牌 cookie 的名称:

apollo: {
  clientConfigs: {
    default: {
      httpEndpoint: 'https://graphql.fauna.com/graphql',
      tokenName: 'NAME_OF_TOKEN_COOKIE'
    }
  }
}

它会自动将 cookie 中的值附加到 apollo 请求中的身份验证标头。

于 2020-04-17T17:21:32.317 回答
0

我使用了名为 ‍‍‍<code>js-cookie 和

常量令牌 = Cookies.get('tokenName')

headers: {
           Authorization: token ? `Bearer ${token}` : ''
}

我认为它对我有用

于 2020-04-14T09:20:27.527 回答
0

在 websockets 设置中看到这个错误(lazy设置reconnect为 true),但可能是相关的。

原因是注销后header.authorization设置为null,这是错误的,整个标题应该设置为null:


// Return header if token set, else - null
const getHeaders = () => {
  const token = store.getters[AuthS.extGetToken]
  if (!token) return null

  return { authorization: `Bearer ${token}` }
}

// Create a WebSocket link:
const link = new WebSocketLink({
  uri: config.backendUrl,

  options: {
    reconnect: true,
    lazy: true,
    timeout: 30000,
    connectionParams: () => {
      return { headers: getHeaders() }
    }
}

于 2020-06-24T05:50:10.440 回答