【发布时间】:2018-10-18 22:57:18
【问题描述】:
使用 Apollo Server 1.x,可以使用 Express 中间件来读取 auth 标头并修改上下文对象。有没有办法用 Apollo Server 2 beta 做到这一点?
【问题讨论】:
标签: node.js apollo-server
使用 Apollo Server 1.x,可以使用 Express 中间件来读取 auth 标头并修改上下文对象。有没有办法用 Apollo Server 2 beta 做到这一点?
【问题讨论】:
标签: node.js apollo-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。
【讨论】: