auth.php¶
Модуль аутентификации и авторизации: управление сессиями, вход через WHMCS, API-ключи, SSO (Google, GitHub, VK), двухфакторная аутентификация и проверка токенов.
Методы API¶
| Метод | Действие | Описание |
|---|---|---|
info | получение информации о токене | Возвращает информацию о текущем токене, включая роль, права доступа, список серверов, статус верификации и настройки биллинга. |
login | получение токена доступа | Авторизация пользователя по API-ключу. Возвращает токен сессии, список доступных серверов и права доступа. |
logout | завершение сессии | Очищает указанный токен доступа, завершая сессию пользователя. |
whmcslogin | вход через WHMCS | Авторизация через учетные данные WHMCS (email/password) или SSO. Поддерживает выбор биллинга и двухфакторную аутентификацию. |
auth/info¶
Возвращает информацию о текущем токене, включая роль, права доступа, список серверов, статус верификации и настройки биллинга.
HTTP-метод: POST|GET
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: info |
| token | ✅ | string | Валидный токен сессии для проверки прав доступа. |
Пример запроса
Пример успешного ответа
{
"result": {
"token": "7bc29eb23fb1b879b21fce509597f07c",
"role": "Customer",
"role_type": "Customer",
"role_name": "customer_billing",
"permissions": [
"eq_list",
"eq_show",
"billing_list"
],
"servers": [
12345,
12346
],
"whmcs_id": "98765",
"whmcs_location": "RU",
"email": "user@example.com",
"customer_id": 54321,
"token_expire": 1735689600,
"verified": true,
"corporate": false,
"default_lang": "ru",
"billing_options": {
"location": "RU",
"company": "HostKey Russia",
"active": true,
"allowed_payments": [
"cc",
"bank"
],
"native_endpoint": "billing.hostkey.ru"
},
"private_ranges": [
"10.0.0.0/24"
],
"private_vlans": [],
"deploy_keys": {},
"billing_servers": [],
"show_products": 1,
"manage_products": 1,
"show_invoices": 1,
"manage_orders": 1,
"ipsubnet_announce": 1,
"edit_master_profile": 1,
"prebill": 0,
"client_ip": "192.168.1.1",
"sumsub_id": null,
"sumsub_comment": null,
"subaccount": null,
"2fa": "email"
},
"subaccount": null,
"original_tags": null
}
auth/login¶
Авторизация пользователя по API-ключу. Возвращает токен сессии, список доступных серверов и права доступа.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: login |
| key | ✅ | string | API-ключ клиента для авторизации |
| ttl | ❌ | integer | Время жизни токена в секундах (по умолчанию 3600) |
| base | ❌ | string | Базовый URL для инвентаризации (опционально) |
Пример запроса
Пример успешного ответа
{
"result": {
"token": "7bc29eb23fb1b879b21fce509597f07c",
"role": "Customer",
"role_type": "Customer",
"whmcs_id": 12345,
"whmcs_location": "whmcs",
"servers": [
101,
102
],
"invapi": "invapi.hostkey.ru",
"customer_id": 5678,
"permissions": [
"eq_list",
"eq_show",
"billing_list"
],
"token_expire": 1715678900,
"new": 1,
"prebill": 0
}
}
auth/logout¶
Очищает указанный токен доступа, завершая сессию пользователя.
HTTP-метод: POST|GET
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: logout |
| token | ✅ | string | Токен сессии, который необходимо удалить. |
Пример запроса
auth/whmcslogin¶
Авторизация через учетные данные WHMCS (email/password) или SSO. Поддерживает выбор биллинга и двухфакторную аутентификацию.
HTTP-метод: POST|GET
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: whmcslogin |
| user | ✅ | string | Email пользователя для входа (если не используется SSO). |
| password | ✅ | string | Пароль пользователя (если не используется SSO). |
| sso | ❌ | string | Идентификатор SSO провайдера (например, google, github). |
| sso_hash | ❌ | string | Хеш для SSO авторизации. |
| location | ❌ | string | Локация биллинга (например, RU, US). Если не указан, используется Auto. |
| VisitorID | ❌ | string | Идентификатор посетителя для трекинга. |
| full_customer_data | ❌ | string | Флаг для возврата полных данных клиента (1 или true). |
| fix_ip | ❌ | string | Фиксация IP для токена (1 или 0). |
| ttl | ❌ | string | Время жизни токена в секундах. |
| base | ❌ | string | Базовый URL для API. |
Пример запроса
Пример успешного ответа
{
"result": {
"token": "7bc29eb23fb1b879b21fce509597f07c",
"role": "Customer",
"role_type": "Customer",
"whmcs_id": "98765",
"whmcs_location": "RU",
"whmcs_token": "",
"permissions": [
"eq_list",
"billing_list"
],
"corporate": false,
"verified": true,
"token_expire": 1735689600,
"new": 1,
"country": "Russia",
"country_code": "RU",
"currency_code": "RUB",
"vat": "1234567890",
"VisitorID": "vis_12345",
"prebill": 0,
"billing_options": {
"location": "RU",
"company": "HostKey Russia",
"active": true,
"allowed_payments": [
"cc",
"bank"
],
"native_endpoint": "billing.hostkey.ru",
"sumsub_kyc": true
},
"2fa": "email"
}
}