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

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

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

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

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

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) это в каждом типе объекта. Но это делает работу.

Другие вопросы по тегам