Я использую библиотеку neo4j-graphql-js для перевода запросов graphql в cypher, и мне нужно реализовать перехватчик, чтобы убедиться, что возвращаемое принадлежит тому пользователю, который его запрашивает. Для этого мне нужно реализовать перехватчик, но у меня проблема в том, что у меня нет резолверов, поскольку он генерирует либерию. Как я могу сделать это через перехватчик? Если перехватчик не может быть использован, есть ли способ реализовать промежуточное ПО в ответе?
Я использую фреймворк nestjs. И я использую базу данных neo4j.
Спасибо.
Модуль:
@Module({
imports: [
GraphQLModule.forRootAsync({
useClass: GraphqlConfigService,
}),
],
providers: [neo4jProvider],
})
export class GraphqlModule {
configure(consumer: MiddlewareConsumer) {
consumer
.apply(GraphQLAuthMiddleware,GraphQLRoleMiddleware)
.forRoutes('graphql');
}
}
@Injectable()
export class GraphqlConfigService implements GqlOptionsFactory {
async createGqlOptions(): Promise<GqlModuleOptions> {
const schema = buildSchema();
return {
playground: true,
schema: schema,
path: '/graphql/queries',
context: {
driver: neo4j.driver(
'bolt://neo4j_db:7687',
neo4j.auth.basic('neo4j', 'root')
)
}
};
}
}
function buildSchema(): GraphQLSchema {
return makeAugmentedSchema({
typeDefs,
config: {
query: true,
mutation: true
}
});
}