首页 > 解决方案 > 您如何使用 Apollo Server 2.0 beta 读取 auth 标头

问题描述

使用 Apollo Server 1.x 可以使用 Express 中间件来读取 auth 标头并修改上下文对象。有没有办法用 Apollo Server 2 beta 做到这一点?

标签: node.jsapollo-server

解决方案


Apollo Server 2 的伟大之处在于您可以在初始化服务器时创建上下文处理程序。

您可以尝试以下方法:

const { ApolloServer } = require('apollo-server')

const server = new ApolloServer({
  typeDefs,
  resolvers,
  context: ({ req }) => {
    const [bearer, token] = req.headers.authorization.split(' ')
    const user = getUserByToken(token)
    return { user }
  }
})

现在您拥有了user提供给每个解析器的上下文对象的内部。


推荐阅读