req.user не определен, даже если он может console.log пользователя - PullRequest
0 голосов
/ 18 февраля 2019

Я пытаюсь реализовать аутентификацию в Graphql с использованием JWT.У меня есть функция, которая должна собирать информацию о пользователях с токеном.Он должен вернуть пользователя, чтобы я мог использовать его в своих запросах Graphql.

Когда я пытаюсь сделать запрос на публикацию, он возвращается как ноль.

const addUser = async (req) => {
    const token = req.headers.authorization;
    try {
      const { user } = await jwt.verify(token, SECRET);
      req.user = user;
    } catch (err) {
      console.log(err);
    }
    req.next();
  };


app.use(addUser);
app.use("/graphql", graphqlHTTP({
    schema,
    graphiql: true,
    context: {
        user: req.user,
        SECRET
    }
}))

Консольговорит, что пользователь: req.user,

ReferenceError: req не определен

Я не понимаю почему, потому что я уже установил req.user равным пользователю

1 Ответ

0 голосов
/ 19 февраля 2019

Похоже, что вы используете express-graphql, посмотрите на документ: https://github.com/graphql/express-graphql

Вы используете graphqlHTTP middleware неправильно.

Посмотрите код ниже:

app.use('/graphql', graphqlHTTP(async (request, response, graphQLParams) => ({
  schema: MyGraphQLSchema,
  rootValue: await someFunctionToGetRootValue(request),
  graphiql: true
})));

Вы должны передать функцию с параметром req в промежуточное ПО graphqlHTTP.

...