Перейти до вмісту

Аутентифікація

Отримати дані авторизації

Section titled “Отримати дані авторизації”

GET /api/authorization/get/

Поля відповіді:

ПолеТипОпис
isWireguardAdminAccessbooleanДоступ адміністратора надається автоматично для VPN-сервера (відповідно до налаштувань).
isWireguardPowerUserAccessbooleanДоступ авторизованого користувача надається автоматично для VPN-сервера (відповідно до налаштувань).
leftButtonAuthorizedSessionMsinteger / nullПісля натискання кнопки пристрою: час у мілісекундах до завершення тимчасового доступу авторизованого користувача, або null, якщо доступ має інший тип.
leftLoggedInSessionMsinteger / nullПісля входу з паролем: час у мілісекундах до завершення доступу авторизованого користувача, або null, якщо доступ має інший тип.
sinceAuthorizationCodeSetMsinteger / nullЧас у мілісекундах з моменту встановлення віддаленого коду авторизації, або null, якщо минуло понад 2 хвилини.
sinceButtonPressedMsinteger / nullЧас у мілісекундах з моменту натискання кнопки пристрою, або null, якщо минуло понад 1 годину.

Приклад відповіді:

{
"isWireguardAdminAccess": true,
"isWireguardPowerUserAccess": false,
"leftButtonAuthorizedSessionMs": null,
"leftLoggedInSessionMs": null,
"sinceAuthorizationCodeSetMs": 109700,
"sinceButtonPressedMs": 5100
}

Встановити тимчасовий код авторизації

Section titled “Встановити тимчасовий код авторизації”

Дозволяє VPN-серверу показати тимчасовий 8-значний код на дисплеї пристрою.

Після цього код відображається протягом 2 хвилин.

POST /api/authorization/code/set/

Параметри запиту:

ПолеТипОпис
authorizationCodeinteger / nullКод, який підтверджує для сервера фізичний доступ користувача до пристрою, або null для видалення коду.

Приклад запиту:

{
"authorizationCode": 12345678
}

Відповідь:

Порожній JSON після успішного виконання команди.

{}

Отримати сіль для хешування пароля

Section titled “Отримати сіль для хешування пароля”

Надає унікальний рядок salt, який клієнт використовує для хешування пароля перед аутентифікацією.

GET /api/login/salt/

Відповідь:

ПолеТипОпис
saltstringУнікальний рядок salt для хешування пароля.

Приклад відповіді:

{
"salt": "sFtqKto6hnaURPGQLJOCT1QMx7myDEGLBsCz3a2L"
}

Аутентифікація користувача

Section titled “Аутентифікація користувача”

Дозволяє користувачеві аутентифікуватися та отримати токен доступу.

POST /api/login/

Параметри запиту:

ПолеТипОпис
usernamestringІм’я користувача. Використовуйте admin.
passwordstringSHA1-хеш пароля в шістнадцятковому форматі.

Примітка: SHA1-хеш пароля обчислюється як SHA1(username + password + salt).

Приклад запиту:

{
"username": "admin",
"password": "90d54ed4126a0924528810aa5673a6d616d5f274"
}

Відповідь:

Після успішної аутентифікації повертається токен та час його дії.

ПолеТипОпис
authTypestringТип аутентифікації (Bearer).
tokenstringТокен доступу.
ttlSecintegerЧас життя токена в секундах.
{
"authType": "Bearer",
"token": "ej5k2pVg4Pd8yBdUqFPq8bdaStpeAZhyelpmkhtOivdK8r7E",
"ttlSec": 60
}

Завершує поточний сеанс користувача та анулює токен.

POST /api/cmd/logout/

Приклад запиту:

{}

Відповідь:

Порожній JSON після успішного виконання команди.

{}