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