Авторизация

Для авторизации предусмотрена отдельная страница GraphQL API https://t34.universo.pro/api/v1.1/registrado/. Отличие данной страницы от основной страницы API в том, что POST запросы в ней не требуют CSRF.

Для авторизации нужно выполнить запрос-мутацию:

mutation($login: String!, $password: String!) {
    ensaluti(login: $login, password: $password) {
        status
        message
        token
        csrfToken
        jwtToken
        uzanto{
            objId
            duaNomo{enhavo}
            familinomo{enhavo}
        }
    }
}

В результате получим ответ в виде JSON в составе параметров: status - результат мутации авторизации true или false; message - текстовое сообщение о результате мутации; token - токен текущей сессии, на текущий момент он не нужен, т.к. axios сохраняет данные о сессии штатно в cookies; csrfToken - ключ CSRF (требуется для корректного POST запроса), необходимо сохранять в течении всей сессии. Если его утерять, то потребуется повторная авторизация; jwtToken - ключ JWT - для получение jwt-токена и взаимодействия через https://t34.universo.pro/api/v1.1/jwt/ при помощи только jwt-токена; uzanto - получить данные о текущем пользователе.

Если результат мутации положителен авторизация прошла, то можно получить данные о текущем пользователе запросом:

query {
  mi {
    objId
    unuaNomo {
        enhavo
    }
    familinomo {
        enhavo
    }
    sekso
    avataro {
        bildoF {
            url
        }
    }
  }
}

Узел схемы MiUzantoNode имеет ещё много параметров о текущем пользователе, список всех параметров можно посмотреть через редактор запросов GraphQL API. Проверку текущей авторизации можно именно выполняя этот запрос, если сессия истекла или была сброшена, то в результате запроса будет возвращен null. Следовательно нужно будет построить авторизацию.

Для прекращения текущей сессии нужно выполнить запрос:

mutation {
    elsaluti {
        status
        message
    }
}

Никаких параметров ему передавать нет необходимости, мутация просто уничтожить текущую сессию и пользователь потеряет авторизацию на сайте.