Я новичок в GraphQL и имею некоторый опыт работы с Node.
Я вхожу в систему как пользователь с помощью паспорта в моем приложении, поэтому мой req будет добавлен с req.user в моем экспрессе, содержащем информацию о пользователе.
Теперь, поскольку я использую GraphQL, как я могу передать req.user в GraphQL из моего основного приложения? (или GraphQL сам по себе будет иметь доступ к req и, следовательно, к req.user?)
У меня есть простая схема GraphQL, подобная этой
app.use("/graphql", expressGraphQL({
schema: schema,
graphiql: true
}));
Для начинающих мне не удалось найти ни одного учебника, аутентифицирующего пользователя с помощью паспорта, поэтому я подумал об использовании спокойных маршрутов APi для аутентификации моего пользователя с помощью паспорта и затем передачи req.user





Вы можете поместить пользовательский материал в context
app.use("/graphql", expressGraphQL({
schema: schema,
graphiql: true,
context: ({ req }) => ({
user: req.user
})
}));
И получить контекст в резольвере. Каждый преобразователь в схеме GraphQL.js принимает четыре позиционных аргумента:
fieldName(obj, args, context, info) { result }
Используя "graphql": "^14.0.2" в узле, я смог просто использовать req в качестве параметра преобразователя (без какой-либо другой специальной конфигурации в разделе app.use):
fieldName(args, req) {
console.info(req.user);
}