Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 在GraphQLServer中使用身份验证和PubSub的正确方法_Node.js_Typescript_Graphql_Typegraphql - Fatal编程技术网

Node.js 在GraphQLServer中使用身份验证和PubSub的正确方法

Node.js 在GraphQLServer中使用身份验证和PubSub的正确方法,node.js,typescript,graphql,typegraphql,Node.js,Typescript,Graphql,Typegraphql,我正在尝试使用GraphQL服务器上的订阅。我面临的问题是,在初始化GraphQLServer时,我不能同时使用中间件来提取JWT和PubSub 这就是我所拥有的: const server=new GraphQLServer({ 模式, 上下文:({request})=>extractJWT(请求), }); 它可以很好地处理这个问题: @Mutation(returns => User) public async findUser( @Ctx() contex

我正在尝试使用GraphQL服务器上的订阅。我面临的问题是,在初始化GraphQLServer时,我不能同时使用中间件来提取JWT和PubSub

这就是我所拥有的:

const server=new GraphQLServer({
模式,
上下文:({request})=>extractJWT(请求),
});
它可以很好地处理这个问题:

@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 decorators中的内容

const pubSub = new PubSub();
const server = new GraphQLServer({
    schema,
    context: {
       ctx: ({request}) => extractJWT(request),
       pubSub
  },
  });
使用JWT提取中间件和PubSub初始化GraphQLServer的正确方法是什么