Управление токенами через GraphQL API
Токенами приложений в TDG можно управлять с помощью
GraphQL-запросов на изменение настроек, используя протокол HTTP.
HTTP-запросы при этом должны иметь заголовок схемы admin и
соответствующий заголовок для авторизации.
Подробнее о таких запросах рассказывается в разделе
Управление настройками через GraphQL API. Пример
выполнения curl-запроса на изменение настроек можно найти на странице
Авторизация Руководства разработчика.
Используя GraphQL API, можно выполнять следующие действия:
- чтение информации о токенах приложений;
- добавление нового токена;
- редактирование данных токена (срок действия и роль);
- изменение статуса токена (заблокировать или разблокировать);
- импорт токена;
- удаление токена по его имени.
Все операции, относящиеся к токенам, выполняются внутри блока
token {}. Полный список параметров запросов и их описание приведены на
странице Основные настройки TDG.
Чтобы вывести список всех токенов приложения, используйте запрос list
(query):
query {token {list {name}}}
Чтобы вывести информацию о токене по его имени, используйте запрос get
(query):
query {token {get(name: "Token1"){nameexpires_increated_atuidrolestateunblocked_atstate_reasonlast_login}}}
Для создания токена приложения используйте запрос add (mutation):
mutation {token {add(name: "App01"expires_in: 0role: "user") {nametokencreated_at}}}
При успешной генерации токена система возвращает ответ с указанием
токена в явном виде в параметре token:
{"data": {"token": {"add": {"name": "App01","token": "b773dbec-b86b-41aa-5541-887ba722c62e","created_at": 1567758613669985599}}}}
При попытке повторно создать токен с уже существующим именем система возвращает сообщение об ошибке.
Изменить можно только срок действия токена и его роль. Для
редактирования токена приложения используйте запрос update (mutation):
mutation {token {update(name: "App01"expires_in: 25000role: "admin") {nameexpires_inrole}}}
Для изменения статуса токена приложения используйте запрос set_state
(mutation):
mutation {token {set_state(name: "App01"state: "blocked") {namerolestate}}}
Кроме того, токен будет заблокирован автоматически (просрочен), если
пользователь будет неактивен в системе дольше определенного времени.
Задать необходимое время (не более 45 дней) можно в параметре
ban_inactive_more_seconds в секции
account_manager файла конфигурации.
Разблокировать просроченный токен можно, если задать для него новое
значение параметра Expires in.
Для импорта токена приложения используйте запрос import (mutation):
mutation {token {import(uid: "9d9fec89-c1f0-467f-b756-156fe9d29840"name: "App02"expires_in: 2592000role: "admin"state: "active"created_at: 1686927801987245300) {nameuid}}}
Для удаления токена приложения используйте запрос remove (mutation):
mutation {token {remove(name: "App01") {namecreated_atrole}}}