Мой экспресс-установка выглядит так:не удается получить экспресс-graphql пройти по паспортной поле пользователя
// Set up router for the /api route.
const apiRouter = express.Router();
// Passport auth only applies to /api endpoints, not static resources
// or js bundles.
apiRouter.use(passport.initialize());
// (more passport initialization omitted for clarity)
// (other routes are added here, also omitted)
// Set up the graphql middleware
apiRouter.use('/gql', graphql(req => ({
schema,
rootValue: { db: req.db, user: req.user, req },
}));
// Now add the router to our app
app.use('/api', apiRouter);
Exerything работы, кроме того req.user
всегда undefined
в моих методах graphql разрешителя. Все другие маршруты, которые добавляются в apiRouter, могут видеть только req.user
. Другие атрибуты объекта запроса, такие как req.db
, работают повсюду. Это почти похоже на то, что промежуточное программное обеспечение graphql выполнялось до промежуточного программного обеспечения паспорта, но я понимаю, что сначала выполняется первое промежуточное ПО, которое объявлено первым.
Если его возвращающий 'null', а не' undefined', это определенно предполагает, что что-то произошло со значением. Вы уверены, что у бэкэнд есть пользовательское значение, связанное с этим конкретным ответом? 'null' - это значение, возвращаемое откуда-то, иначе оно будет' undefined'. – Dandy
Извините, я должен был сказать undefined. – Talin
Нам нужно будет увидеть, как ваш код обрабатывает запрос, передающий параметры 'req'. Это определенно не пропускает пользователя, но я не вижу ничего в пакете 'graphql', который будет мешать этому. – Dandy