Управление токенами через 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")
{
name
expires_in
created_at
uid
role
state
unblocked_at
state_reason
last_login
}
}
}
Добавление токена¶
Для создания токена приложения используйте запрос add
(mutation):
mutation {
token {
add(
name: "App01"
expires_in: 0
role: "user"
) {
name
token
created_at
}
}
}
При успешной генерации токена система возвращает ответ с указанием токена в явном виде в параметре token
:
{
"data": {
"token": {
"add": {
"name": "App01",
"token": "b773dbec-b86b-41aa-5541-887ba722c62e",
"created_at": 1567758613669985599
}
}
}
}
Important
Сохраните созданный токен в надежном месте. В целях безопасности токен в явном виде показывается только один раз, при его генерации. При повторных запросах существующего токена система возвращает его только в виде хеша.
При попытке повторно создать токен с уже существующим именем система возвращает сообщение об ошибке.
Редактирование токена¶
Изменить можно только срок действия токена и его роль.
Для редактирования токена приложения используйте запрос update
(mutation):
mutation {
token {
update(
name: "App01"
expires_in: 25000
role: "admin"
) {
name
expires_in
role
}
}
}
Блокировка токена¶
Для изменения статуса токена приложения используйте запрос set_state
(mutation):
mutation {
token {
set_state(
name: "App01"
state: "blocked"
) {
name
role
state
}
}
}
Кроме того, токен будет заблокирован автоматически (просрочен), если пользователь будет неактивен в системе дольше
определенного времени. Задать необходимое время (не более 45 дней) можно в параметре ban_inactive_more_seconds
в секции account_manager файла конфигурации.
Разблокировать просроченный токен можно, если задать для него новое значение параметра Expires in
.
Импорт токена¶
Для импорта токена приложения используйте запрос import
(mutation):
mutation {
token {
import(
uid: "9d9fec89-c1f0-467f-b756-156fe9d29840"
name: "App02"
expires_in: 2592000
role: "admin"
state: "active"
created_at: 1686927801987245300
) {
name
uid
}
}
}
Удаление токена¶
Для удаления токена приложения используйте запрос remove
(mutation):
mutation {
token {
remove(name: "App01") {
name
created_at
role
}
}
}