Передача req.user в graphQL - PullRequest
       9

Передача req.user в graphQL

0 голосов
/ 26 декабря 2018

Я новичок в GraphQL и имею некоторый опыт работы с Node.

Я вхожу в систему с использованием паспорта в моем приложении, поэтому к моему req будет добавлено req.user в моем экспрессе, содержащем информацию о пользователе.

Теперь, так как я использую GraphQL, как я могу передать req.user в GraphQL из моего основного приложения?(или GraphQL сам по себе будет иметь доступ к req и, следовательно, к req.user?)

У меня есть простая схема GraphQL, подобная этой

app.use("/graphql", expressGraphQL({
    schema: schema,
    graphiql: true
  }));

Для начинающих я не смог найтилюбой учебник по аутентификации пользователя с помощью паспорта, поэтому я подумал об использовании restful APi-маршрутов для аутентификации моего пользователя с использованием паспорта и последующей передачи req.user

Ответы [ 2 ]

0 голосов
/ 25 января 2019

Используя "graphql": "^14.0.2" в узле, я смог просто использовать req в качестве параметра резольвера следующим образом (без каких-либо других специальных настроек в разделе app.use):

 fieldName(args, req) {
    console.log(req.user);
 }
0 голосов
/ 26 декабря 2018

Вы можете поместить пользовательский материал в context

app.use("/graphql", expressGraphQL({
    schema: schema,
    graphiql: true,
    context: ({ req }) => ({
      user: req.user
    })
}));

и получить контекст в распознавателе.Каждый распознаватель в схеме GraphQL.js принимает четыре позиционных аргумента:

fieldName(obj, args, context, info) { result }

...