Передача токена через Query?

У меня работает сервер Graph QL (Apollo Server 2), и API, стоящий за ним, требует, чтобы каждый запрос включал токен.

В настоящее время токен поступает из файла cookie HTTP-запроса. Это было достаточно просто для работы. Когда приходит запрос, возьмите файл cookie из заголовка и передайте его в HTTP-запрос, который будет отправлен на сервер API через преобразователи.

Я хотел бы сделать так, чтобы клиент GraphQL мог передавать этот токен через сам запрос POST.

В основном интересно, могу ли я определить какую-то глобальную переменную GQL. «Все запросы, эта переменная обязательна».


person Charlie    schedule 13.06.2018    source источник


Ответы (1)


У меня была аналогичная реализация в Typescript, и чтобы добиться чего-то подобного, я определил объект:

const globalInput = {
   token: {
     type: GraphQLString;
   }
}

А затем используйте его в своем GraphQLObjectType:

const Query = new GraphQLObjectType({
    name: 'Query',
    fields: () => ({
        myObject: {
          type: MyTypeObject,
          args: { ...globalInput },
          resolve: (source: any, args: any) => {
             // global input values can be access in args
             // ex: args.token
             return {}
          }
        }
    })
})

Проблема в том, что мне нужно расширить его (...globalInput) в каждом типе объекта. Но это делает работу.

person Marco Daniel    schedule 19.06.2018