Javascript 盖茨比构建时的Graphql请求不';不发送标题

Javascript 盖茨比构建时的Graphql请求不';不发送标题,javascript,graphql,react-apollo,apollo-client,apollo-server,Javascript,Graphql,React Apollo,Apollo Client,Apollo Server,我在前端(盖茨比)和pollo之间添加了身份验证。这适用于运行时的请求。然而,在构建时,没有头文件不会发送给Apollo。我有以下代码: // SERVER SIDE // apollo server setup const { ApolloServer, AuthenticationError } = require("apollo-server-lambda") ... //other imports const server = new ApolloServer({

我在前端(盖茨比)和pollo之间添加了身份验证。这适用于运行时的请求。然而,在构建时,没有头文件不会发送给Apollo。我有以下代码:

// SERVER SIDE
// apollo server setup
const { ApolloServer, AuthenticationError } = require("apollo-server-lambda")
... //other imports

const server = new ApolloServer({
  context: ({ event, context }) => {
    if (!event.headers.authorization) {
        // No authentication header
        throw new AuthenticationError("must authenticate")
    }
    // Authenticate
  },
  resolvers,
  schema: schemaWithResolvers,
  introspection: true,
  playground: true,
  formatError: (err) => {
    console.log("Error", err)
    return err
  },
})
apollo客户端安装程序在运行时将授权标头添加到graphql请求中。但在构建时,由于没有可用的头,我会收到错误。 在构建期间发送的头文件缺少什么?或者我是否可以在构建期间检测调用是否被触发,以便忽略身份验证过程?
非常感谢。

感谢@xadm,我发现要在构建时使用源数据,您需要安装插件并将其添加到配置中。我使用gatsby源代码graphql,但忘了在这里添加标题

//gatsby-config-js
    {
      resolve: "gatsby-source-graphql",
      options: {
        typeName: "Apollo",
        fieldName: "apollo",
        createLink: (pluginOptions) => {
          return createHttpLink({
            uri: "your uri",
            fetch,
            credentials: "same-origin",
            headers: {
              Authorization: "your authorization",
            },
          })
        },
      },
    },

关于这方面的文章:

graphql()
在节点env(运行时服务器/客户机的独立部分)中调用构建时工作。。。指向内部gatsby“服务器”,单独配置客户端以进行构建,或者使用一些源插件进行外部graphql api访问,配置它,等等。那么我应该在服务器端添加一个客户端吗?就在阿波罗服务器旁边?
// CLIENT SIDE
// gatsby-node (during build-time)
// => This call gets rejected during buildtime because authorization header is not available.
exports.createPages = async function ({ actions, graphql }) {
  const { data } = await graphql(`
    query {
      apollo {
        allWathever {
          id
        }
      }
    }
  `)
}
//gatsby-config-js
    {
      resolve: "gatsby-source-graphql",
      options: {
        typeName: "Apollo",
        fieldName: "apollo",
        createLink: (pluginOptions) => {
          return createHttpLink({
            uri: "your uri",
            fetch,
            credentials: "same-origin",
            headers: {
              Authorization: "your authorization",
            },
          })
        },
      },
    },