Авторизация¶
Для авторизации предусмотрена отдельная страница 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
}
}
Никаких параметров ему передавать нет необходимости, мутация просто уничтожить текущую сессию и пользователь потеряет авторизацию на сайте.