node.js - 在 GraphQLServer 中进行身份验证和 PubSub 的正确方法
问题描述
我正在尝试在我的 GraphQL 服务器上使用订阅。我面临的问题是,在初始化 GraphQLServer 时,我不能同时使用中间件来提取我的 JWT 和 PubSub。
这就是我所拥有的:
const server = new GraphQLServer({
schema,
context: ({request}) => extractJWT(request),
});
它适用于这个:
@Mutation(returns => User)
public async findUser(
@Ctx() context: IContext,
@PubSub() pubsub: PubSubEngine,
) {
const user = await User.findById(context.tokenData.userId)
pubsub.publish('user', { user })
return user
}
但是,如果我在 GraphQLServer 初始化上下文中注册 PubSub 并将我的代码更改为下面的代码,我将无法再访问我的 @Ctx 装饰器中的内容。
const pubSub = new PubSub();
const server = new GraphQLServer({
schema,
context: {
ctx: ({request}) => extractJWT(request),
pubSub
},
});
使用 JWT 提取中间件和 PubSub 初始化我的 GraphQLServer 的正确方法是什么?
解决方案
推荐阅读
- vue.js - 具有实时变化的 VueJs Wall
- javascript - 仅在客户端 JS 中检查数据后才调用 Ajax?
- java - testHarness ListState TTL 未在 Flink 1.8.2 上应用
- javascript - 手风琴在产品选项卡下的 Magento2 中不起作用
- c++ - 24 和 124 的空白消除
- ios - 发射不适用于 iOS swift 中的网络套接字?
- clojurescript - Clojurscript:扩展一个 Javascript 类
- vba - 更新后如何使用来自两个组合框的 dlookup 填充文本框
- julia - 在 Julia 中模仿 Scala Option[T] 的最佳方式?
- javascript - 通过javascript创建新的div