如何为 REST 和 GraphQL 使用相同的 RoleGuard?
Posted
技术标签:
【中文标题】如何为 REST 和 GraphQL 使用相同的 RoleGuard?【英文标题】:How can I use the same RoleGuard for REST and GraphQL? 【发布时间】:2021-06-16 13:49:00 【问题描述】:我有这个问题: nestjs context.swithToHttp().getRequest() returns undefined
不同之处在于我的应用程序需要支持 GraphQL 和 REST,但实际上,我想不出任何方法可以为 GraphQL 和 REST 使用相同的 RoleGuard,因为它们的上下文不同。
【问题讨论】:
【参考方案1】:我自己想办法
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;
【讨论】:
以上是关于如何为 REST 和 GraphQL 使用相同的 RoleGuard?的主要内容,如果未能解决你的问题,请参考以下文章
如何为 graphql-java-servlet 和 Micronaut 控制器配置 GraphQL servlet 端点?