如何在REST和GraphQL中使用相同的RoleGuard?

如何在REST和GraphQL中使用相同的RoleGuard?,rest,graphql,nestjs,guard,Rest,Graphql,Nestjs,Guard,我有一个问题: 区别在于我需要为我的应用程序支持GraphQL和REST,但实际上,我无法找到任何方法为GraphQL和REST使用相同的RoleGuard,因为它们的上下文不同。我自己解决了这个问题 let user: User; if (context.getType() === 'http') { user = context.switchToHttp().getRequest().user; } else if (context.getType&l

我有一个问题:

区别在于我需要为我的应用程序支持GraphQL和REST,但实际上,我无法找到任何方法为GraphQL和REST使用相同的RoleGuard,因为它们的上下文不同。

我自己解决了这个问题

    let user: User;

    if (context.getType() === 'http') {
      user = context.switchToHttp().getRequest().user;
    } else if (context.getType<GqlContextType>() === 'graphql') {
      const ctx = GqlExecutionContext.create(context);
      user = ctx.getContext().req.user;
    }
让用户:用户;
if(context.getType()=='http'){
user=context.switchToHttp().getRequest().user;
}else if(context.getType()=='graphql'){
const ctx=GqlExecutionContext.create(context);
user=ctx.getContext().req.user;
}