TDG Documentation portal logo
Помощь
Обновлена 22 июня 2026 г. в 15:31

Авторизация

Авторизация и отправка HTTP-запроса

Чтобы HTTP-запрос был обработан, он должен пройти авторизацию по токену приложений. Заранее сгенерированный (например, в веб-интерфейсе TDG) токен приложений необходимо передать в HTTP-заголовке запроса по схеме Authorization: Bearer <token>, где:

  • Authorization - имя заголовка;
  • Bearer - схема HTTP-аутентификации;
  • <token> - ключ токена.

Пример

Authorization: Bearer 2fc136cf-8cae-4655-a431-7c318967263d

В HTTP-запросе в заголовке указывается один из двух вариантов схемы данных:

  • схема default (по умолчанию) - работа с пользовательскими данными. Если схема данных в заголовке пропущена, для запроса используется схема default.
  • схема admin - управление настройками TDG.

Для выполнения запросов в примерах ниже используется утилита curl.

Пример запроса на добавление данных в схеме default:

curl –request POST \  –url http://172.19.0.2:8080/graphql \  –header 'Authorization: Bearer 2fc136cf-8cae-4655-a431-7c318967263d' \  –data '{"query":"mutation{  Country(insert: {  title: \"Poland\", phone_code:\"+48\"}) {title phone_code}}"}'

Пример запроса в схеме admin:

curl –request POST \  –url http://172.19.0.2:8080/graphql \  –header 'Authorization: Bearer 2fc136cf-8cae-4655-a431-7c318967263d' \  –header 'schema: admin' \  –header 'Content-Type: application/json' \  –data '{"query":"mutation{  token{  add(name:\"App01\", role:\"user\") {  name, token, created_at role }  }  }  "}'

В запросе внешнее приложение авторизуется, используя свой заранее созданный токен, и выпускает (генерирует) новый токен App01. Подробнее о генерации токена приложений через GraphQL API рассказывается в разделе Добавление токена Руководства администратора.

Авторизация коннекторов с использованием токена приложений

Приложения, использующие для доступа к данным в TDG коннекторы для языков программирования, авторизуются по токенам приложений. Подробнее о настройке таких коннекторов, запросах к данным и вызове сервисов рассказано в главе Использование бинарного протокола iproto.

Чтобы авторизовать коннектор, нужно указать токен приложения непосредственно в вызываемой функции в дополнительном аргументе credentials. Например, запрос на вставку объекта через интерфейс репозитория будет выглядеть следующим образом:

repository.put(type_name, obj, options, context, credentials)

где:

  • type_name - тип объекта;
  • object - объект для вставки;
  • options - параметры для управления запросом;
  • context - контекст выполнения запроса;
  • credentials - таблица с данными токена приложения. Единственный обязательный параметр в таблице - это ключ токена.

Пример авторизации с использованием токена приложений на языке Python:

from tarantool.connection import Connectionconn = Connection(server.host, server.binary_port, user='tdg_service_user', password='')admin_token = {'token': '2fc136cf-8cae-4655-a431-7c318967263d'}obj = {'id': '12567', 'name': 'John'}conn.call('repository.put', 'Users', obj, {}, {}, admin_token)

Запрос из примера добавит новый объект Users с первичным ключом id, равным 12567, если такой ещё не существует.