Доступ к GraphQL серверу с использованием express-router с express-graphql и паспортной аутентификацией

Я пытаюсь построить express-route на мой сервер GraphQL, используя express-graphql, Маршрут для graphql клиенты должны быть доступны только после аутентификации, но graphiql Маршрут должен быть доступен без аутентификации. Я использую passport-jwt для аутентификации.

Вот мой текущий код, где jwauth Это паспорт реализации моей стратегии:

router.get(
    '/graphql',
    jwtauth.authenticate(),
    graphqlHTTP({
        schema: schema,
        graphiql: true,
        context: context,
        pretty: true
    })
);

Это естественно не сработает, так как я не могу использовать router.get на этом пути.

Как я могу построить этот маршрут, учитывая, что мой сервер GraphQL будет доступен только после аутентификации, а мой GraphiQL будет доступен всем?

0 ответов

Другие вопросы по тегам