auth.php¶
Модуль аутентификации и авторизации: управление сессиями, вход через WHMCS, LDAP, API-ключи и SSO (Google, GitHub, VK), верификация 2FA, SMS и email, а также управление тегами клиентов.
Методы API¶
| Метод | Действие | Описание |
|---|---|---|
2fa_check | проверка 2FA | Проверяет корректность кода двухфакторной аутентификации для пользователя |
2fa_resend | повторная отправка 2FA | Инициирует повторную отправку кода двухфакторной аутентификации (2FA) на привязанный канал связи пользователя. |
billing_list | получение списка биллинга | Возвращает список активных сервисов и данных о биллинге пользователя |
email_check | проверка email | Проверяет существование клиента по его адресу электронной почты и возвращает связанные с ним теги. |
flip_tag | переключение тега | Переключает состояние (активен/неактивен) указанного тега для пользователя или сущности |
get_log | получение лога авторизации | Возвращает лог событий авторизации за указанный период или по токену. |
get_log_details | получение деталей лога | Возвращает детальную информацию о событии в журнале авторизации по предоставленному токену |
github_init | инициализация GitHub | Инициализирует процесс авторизации через GitHub для получения токена доступа |
github_signin | авторизация через GitHub | Выполняет вход в систему с использованием учетной записи GitHub, генерирует токен доступа и устанавливает сессию пользователя. |
google_signin | авторизация через Google | Выполняет вход в систему с использованием учетной записи Google для получения токена доступа |
info | получение информации об авторизации | Возвращает информацию о текущем состоянии аутентификации и данных пользователя |
ipalogin | вход через LDAP (IPA) | Авторизация сотрудника через LDAP (IPA) с возможностью привязки к серверу. |
login | авторизация | Выполняет вход в систему, создавая новую сессию пользователя и возвращая данные авторизованного клиента. |
logout | выход из системы | Завершает текущую сессию пользователя и аннулирует токен доступа |
session_reset | сброс сессии | Сбрасывает активную сессию пользователя, аннулируя текущие токены доступа. |
set_tag | установка тега | Массовая вставка или обновление тегов для указанных компонентов. Поддерживает валидацию и логирование истории. |
tg_verify | проверка Telegram-авторизации | Проверяет валидность данных авторизации через Telegram для подтверждения личности пользователя |
vk_init | инициализация VK | Инициализирует процесс авторизации или настройки параметров для интеграции с VK |
vk_signin | авторизация через VK | Выполняет авторизацию пользователя с использованием данных социальной сети ВКонтакте. |
whmcslogin | авторизация через WHMCS или SSO | Выполняет вход в систему. Поддерживает стандартную авторизацию (email/password) и SSO-методы (Google, GitHub, VK). При успешном входе возвращает токен сессии, данные клиента и права доступа. |
auth/2fa_check¶
Проверяет корректность кода двухфакторной аутентификации для пользователя
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: 2fa_check |
| params[token] | ✅ | string | Токен сессии или идентификатор проверки |
| params[code] | ✅ | string | Код двухфакторной аутентификации |
| token | ✅ | string | API-токен аутентификации |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "Invalid 2FA code" }
```
auth/2fa_resend¶
Инициирует повторную отправку кода двухфакторной аутентификации (2FA) на привязанный канал связи пользователя.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: 2fa_resend |
| token | ✅ | string | Токен авторизации сессии |
| from | ✅ | string | Параметр from (обнаружен в коде) |
Пример запроса
Примеры ошибок
``` { "code": -1, "message": "Не удалось отправить код 2FA" }
```
auth/billing_list¶
Возвращает список активных сервисов и данных о биллинге пользователя
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: billing_list |
| params[user_id] | ✅ | int | ID пользователя для получения списка сервисов |
| params[location] | ❌ | string | Фильтрация по локации (например, NL) |
| params[decode] | ❌ | boolean | Флаг декодирования данных |
| token | ✅ | string | API-токен аутентификации |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "User not found" }
```
auth/email_check¶
Проверяет существование клиента по его адресу электронной почты и возвращает связанные с ним теги.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: email_check |
| params[email] | ✅ | string | Адрес электронной почты для проверки |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "Email not found" }
```
auth/flip_tag¶
Переключает состояние (активен/неактивен) указанного тега для пользователя или сущности
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| params[hash] | ✅ | string | Уникальный хеш сессии или идентификатор пользователя |
| params[tag] | ✅ | string | Имя тега для переключения |
| tag | ✅ | string | Параметр tag (обнаружен в коде) |
| token | ✅ | string | API-токен аутентификации |
Пример запроса
Примеры ошибок
``` { "code": -1, "message": "Invalid hash or tag not found" }
```
auth/get_log¶
Возвращает лог событий авторизации за указанный период или по токену.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: get_log |
| token | ✅ | string | Токен сессии |
| user_token | ❌ | string | Токен пользователя для поиска лога |
| period_start | ❌ | string | Начало периода (YYYY-MM-DD) |
| period_stop | ❌ | string | Конец периода (YYYY-MM-DD) |
| user_email | ❌ | string | Email пользователя для фильтрации лога |
Пример запроса
Пример успешного ответа
auth/get_log_details¶
Возвращает детальную информацию о событии в журнале авторизации по предоставленному токену
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: get_log_details |
| token | ✅ | string | Токен для получения данных лога |
Пример запроса
Пример успешного ответа
{
"result": "OK",
"action": "get_log_details",
"data": {
"id": 12345,
"event": "login_success",
"ip": "192.168.1.1",
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)",
"created_at": "2024-05-20T14:30:00Z",
"details": {
"status": "success",
"method": "password",
"remote_addr": "192.168.1.1"
}
}
}
Примеры ошибок
``` { "code": -404, "message": "Log entry not found" }
```
auth/github_init¶
Инициализирует процесс авторизации через GitHub для получения токена доступа
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| - | - | - | Других параметров нет |
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "GitHub authentication failed" }
```
auth/github_signin¶
Выполняет вход в систему с использованием учетной записи GitHub, генерирует токен доступа и устанавливает сессию пользователя.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: github_signin |
| token | ✅ | string | Токен авторизации GitHub для проверки подлинности |
| state | ✅ | string | Параметр state (обнаружен в коде) |
| code | ✅ | string | Параметр code (обнаружен в коде) |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "Authentication failed" }
```
auth/google_signin¶
Выполняет вход в систему с использованием учетной записи Google для получения токена доступа
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: google_signin |
| params[id_token] | ✅ | string | ID Token, полученный от Google |
| credential | ✅ | string | Параметр credential (обнаружен в коде) |
| token | ✅ | string | API-токен аутентификации |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "Invalid Google token" }
```
auth/info¶
Возвращает информацию о текущем состоянии аутентификации и данных пользователя
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: info |
| token | ✅ | string | Токен авторизации |
Пример запроса
Пример успешного ответа
{
"result": "OK",
"action": "info",
"data": {
"user_email": "user@example.com",
"status": "active",
"web_ip": "192.168.1.1",
"tags": [
{
"id": 1,
"tag": "premium",
"value": "fa-solid fa-rocket"
}
],
"customer_id": 456,
"whmcs_id": 456
},
"server_data_incomplete": null,
"prebill_scope": null,
"manage_products": null,
"show_invoices": null,
"billing_servers": null,
"whmcs_location": null,
"edit_master_profile": null,
"original_tags": null,
"has_product_subscription": null,
"s3": null,
"ipsubnet_announce": null,
"managed_apps": null,
"deploy_keys": null,
"manage_orders": null,
"prebill": null,
"show_products": null,
"subaccount": null,
"prebill_global": null,
"email": null,
"token_expire": null
}
Примеры ошибок
``` { "code": -1, "message": "Unauthorized" }
```
auth/login¶
Выполняет вход в систему, создавая новую сессию пользователя и возвращая данные авторизованного клиента.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: login |
| params[client_id] | ✅ | string|int | ID или email клиента для авторизации |
| params[password] | ✅ | string | Пароль пользователя |
| key | ✅ | string | API ключ для авторизации |
| ttl | ❌ | int | Время жизни сессии (Time To Live) |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "Invalid credentials" }
```
auth/logout¶
Завершает текущую сессию пользователя и аннулирует токен доступа
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| token | ✅ | string | Токен авторизации для выполнения действия |
Примеры ошибок
``` { "code": -1, "message": "Invalid token or session expired" }
```
auth/session_reset¶
Сбрасывает активную сессию пользователя, аннулируя текущие токены доступа.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: session_reset |
| token | ✅ | string | Токен для аутентификации запроса |
| confirm | ✅ | string | Параметр confirm (обнаружен в коде) |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "Invalid token" }
```
auth/set_tag¶
Массовая вставка или обновление тегов для указанных компонентов. Поддерживает валидацию и логирование истории.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| tags[] | ✅ | array<object> | Массив объектов с данными тега. Каждый объект должен содержать component, component_id и tag. |
| token | ✅ | string | API-токен аутентификации |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "DuplicateTagNameException: Тег с таким именем уже существует для данного компонента" }
```
auth/tg_verify¶
Проверяет валидность данных авторизации через Telegram для подтверждения личности пользователя
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: tg_verify |
| token | ✅ | string | Токен сессии или идентификатор проверки |
Пример запроса
Примеры ошибок
``` { "code": -1, "message": "Invalid token or Telegram session expired" }
```
auth/vk_init¶
Инициализирует процесс авторизации или настройки параметров для интеграции с VK
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: vk_init |
| state | ✅ | string | Параметр state (обнаружен в коде) |
Пример запроса
Примеры ошибок
``` { "code": -1, "message": "Ошибка инициализации VK" }
```
auth/vk_signin¶
Выполняет авторизацию пользователя с использованием данных социальной сети ВКонтакте.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: vk_signin |
| token | ✅ | string | Токен доступа для аутентификации запроса |
| state | ✅ | string | Параметр state (обнаружен в коде) |
| code | ✅ | string | Параметр code (обнаружен в коде) |
| device_id | ✅ | int | Параметр device_id (обнаружен в коде) |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "Invalid VK token" }
```
auth/whmcslogin¶
Выполняет вход в систему. Поддерживает стандартную авторизацию (email/password) и SSO-методы (Google, GitHub, VK). При успешном входе возвращает токен сессии, данные клиента и права доступа.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: whmcslogin |
| sso | ❌ | string | Метод SSO (google, github, vk) |
| sso_hash | ❌ | string | Хеш или токен для SSO-авторизации |
| user | ❌ | string | Email пользователя (для стандартного входа) |
| password | ❌ | string | Пароль пользователя |
Пример запроса
Пример успешного ответа
{
"result": "OK",
"action": "whmcslogin",
"token": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6",
"role": "Customer",
"role_type": "Customer",
"whmcs_id": 12345,
"whmcs_location": "US",
"country": "United States",
"country_code": "US",
"currency_code": "USD",
"vat": "123456789",
"prebill": true,
"permissions": [
"manageproducts",
"show_invoices",
"edit_master_profile"
],
"client_data": {
"id": 100,
"email": "user@example.com",
"account_id": 12345,
"countrycode": "US",
"currency_code": "USD"
}
}
Примеры ошибок
``` { "INVALID_SERVICE": { "result": -2, "error": "Invalid service", "code": "INVALID_SERVICE" }, "INVALID_CREDENTIAL": { "result": -2, "message": "invalid credential", "error_code": "INVALID_CREDENTIAL" }, "SSO_NOT_SET": { "result": -2, "error": "SSO not set", "code": "SSO_NOT_SET" }, "USER_NOT_FOUND": { "result": -2, "error": "User not found", "code": "USER_NOT_FOUND" }, "USERNAME_REQUIRED": { "result": -2, "error": "Username is empty", "code": "USERNAME_REQUIRED" }, "PASSWORD_REQUIRED": { "result": -2, "error": "Password is empty", "code": "PASSWORD_REQUIRED" } }
```