auth.php¶
Модуль аутентификации и авторизации: управление сессиями, вход через WHMCS, LDAP, API-ключи и SSO (Google, GitHub, VK), верификация 2FA, SMS и email, а также управление тегами клиентов.
Методы API¶
| Метод | Действие | Описание |
|---|---|---|
2fa_check | проверка кода 2FA | Проверяет код двухфакторной аутентификации, переданный в параметре user_token. |
2fa_resend | повторная отправка кода 2FA | Запрашивает повторную отправку кода 2FA на привязанный метод. |
billing_list | получение списка биллингов | Возвращает список доступных биллинговых систем (WHMCS) для текущего домена или пользователя. |
email_check | проверка email | Инициализирует или проверяет верификацию email адреса пользователя. |
flip_tag | переключение тега | Устанавливает или удаляет тег у клиента (например, auto_credit). |
get_log | получение лога авторизации | Возвращает лог событий авторизации за указанный период или по токену. |
get_log_details | детали лога авторизации | Возвращает подробную информацию о конкретном событии лога по токену. |
github_init | инициализация GitHub SSO | Возвращает данные для инициализации OAuth потока с GitHub. |
github_signin | вход через GitHub | Обработка OAuth кода от GitHub для входа или привязки аккаунта. |
google_signin | вход через Google | Обработка JWT токена от Google для входа или привязки аккаунта. |
info | информация о токене | Возвращает информацию о текущей сессии, правах доступа, серверах и биллинге. |
ipalogin | вход через LDAP (IPA) | Авторизация сотрудника через LDAP (IPA) с возможностью привязки к серверу. |
login | вход по API ключу | Авторизация клиента или сервера по API ключу. |
logout | выход из системы | Очищает текущий токен сессии. |
session_reset | сброс сессий | Сбрасывает все активные сессии пользователя по email и токену сброса. |
set_tag | установка тега | Устанавливает или удаляет тег у клиента с возможностью указания значения. |
tg_verify | верификация Telegram | Привязывает Telegram username к аккаунту пользователя. |
vk_init | инициализация VK SSO | Возвращает данные для инициализации OAuth потока с VK ID. |
vk_signin | вход через VK | Обработка OAuth кода от VK для входа или привязки аккаунта. |
whmcslogin | вход через WHMCS | Основной метод входа через учетные данные WHMCS (email/password) или SSO. |
auth/2fa_check¶
Проверяет код двухфакторной аутентификации, переданный в параметре user_token.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: 2fa_check |
| token | ✅ | string | Токен сессии пользователя |
| user_token | ✅ | string | Код двухфакторной аутентификации |
Пример запроса
auth/2fa_resend¶
Запрашивает повторную отправку кода 2FA на привязанный метод.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: 2fa_resend |
| token | ✅ | string | Токен сессии пользователя |
| from | ❌ | string | Источник запроса (user_profile, resend_dialog) |
Пример запроса
auth/billing_list¶
Возвращает список доступных биллинговых систем (WHMCS) для текущего домена или пользователя.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: billing_list |
| token | ❌ | string | Токен сессии для авторизации. Если не передан, возвращается список для всех биллингов. |
Пример успешного ответа
auth/email_check¶
Инициализирует или проверяет верификацию email адреса пользователя.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: email_check |
| user_email | ✅ | string | Email адрес для проверки |
| location | ✅ | string | Биллинг локация (например, RU, US) |
| user_token | ❌ | string | Код подтверждения, отправленный на email (для этапа верификации) |
Пример запроса
Пример успешного ответа
auth/flip_tag¶
Устанавливает или удаляет тег у клиента (например, auto_credit).
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: flip_tag |
| token | ✅ | string | Токен сессии |
| tag | ✅ | string | Имя тега для переключения (разрешен только 'auto_credit' для роли user) |
Пример запроса
Пример успешного ответа
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 | Токен сессии для авторизации |
| user_token | ✅ | string | Токен события лога для получения деталей |
Пример запроса
Пример успешного ответа
auth/github_init¶
Возвращает данные для инициализации OAuth потока с GitHub.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: github_init |
| - | - | - | Других параметров нет |
Пример успешного ответа
auth/github_signin¶
Обработка OAuth кода от GitHub для входа или привязки аккаунта.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: github_signin |
| code | ✅ | string | OAuth код от GitHub |
| state | ✅ | string | State параметр (используется как токен сессии для привязки) |
Пример запроса
auth/google_signin¶
Обработка JWT токена от Google для входа или привязки аккаунта.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: google_signin |
| credential | ✅ | string | JWT токен от Google |
| token | ❌ | string | Токен текущей сессии для привязки |
Пример запроса
Пример успешного ответа
auth/info¶
Возвращает информацию о текущей сессии, правах доступа, серверах и биллинге.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: info |
| token | ✅ | string | Токен сессии |
Пример запроса
Пример успешного ответа
{
"result": {
"token": "abc123",
"role": "Customer",
"role_type": "Customer",
"servers": [
101,
102
],
"whmcs_id": 555,
"permissions": [
"eq_list",
"billing_list"
],
"token_expire": 1705320000,
"email": "user@example.com",
"subaccount": null,
"manage_orders": 0,
"ipsubnet_announce": 0,
"prebill": 0,
"show_products": 0,
"manage_products": 0,
"customer_id": 456,
"billing_servers": null,
"edit_master_profile": 0,
"original_tags": null,
"whmcs_location": "whmcs",
"show_invoices": 0,
"billing_options": {
"url": "https://billing.example.com",
"location": "US",
"company": "Example Inc",
"active": 1,
"allowed_payments": [
"cc",
"pp"
],
"native_endpoint": "https://billing.example.com",
"sumsub_kyc": 1,
"paypal_id": "12345"
},
"verified": 1,
"sumsub_id": "sumsub_123",
"sumsub_comment": "",
"corporate": 0,
"default_lang": "en",
"private_ranges": [],
"private_vlans": [],
"deploy_keys": {},
"client_ip": "192.168.1.1",
"timing": []
}
}
auth/login¶
Авторизация клиента или сервера по API ключу.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: login |
| key | ✅ | string | API ключ |
| ttl | ❌ | int | Время жизни токена в секундах |
| base | ❌ | string | Базовый URL для invapi (опционально) |
Пример запроса
Пример успешного ответа
{
"result": {
"token": "api_token_123",
"role": "Customer",
"role_type": "Customer",
"whmcs_id": "12345",
"whmcs_location": "whmcs",
"servers": [
101,
102
],
"invapi": "invapi.hostkey.ru",
"customer_id": "5678",
"permissions": [
"server/list",
"server/info"
],
"token_expire": 1705327200,
"new": 1,
"prebill": 0
}
}
auth/logout¶
Очищает текущий токен сессии.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: logout |
| token | ✅ | string | Токен сессии для удаления |
Пример запроса
auth/session_reset¶
Сбрасывает все активные сессии пользователя по email и токену сброса.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: session_reset |
| user_email | ✅ | string | Email пользователя, сессии которого нужно сбросить |
| reset_token | ✅ | string | Токен сброса сессии |
| confirm | ❌ | int | Флаг подтверждения действия (1) |
Пример запроса
auth/set_tag¶
Устанавливает или удаляет тег у клиента с возможностью указания значения.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: set_tag |
| token | ✅ | string | Токен сессии |
| tag | ✅ | string | Имя тега |
| set | ✅ | string | Значение тега (обязательный параметр согласно коду) |
Пример запроса
Пример успешного ответа
auth/tg_verify¶
Привязывает Telegram username к аккаунту пользователя.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: tg_verify |
| token | ✅ | string | Токен сессии |
| tg_username | ✅ | string | Имя пользователя Telegram (без @) |
Пример запроса
auth/vk_init¶
Возвращает данные для инициализации OAuth потока с VK ID.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: vk_init |
| token | ❌ | string | Токен текущей сессии (опционально, используется для привязки SSO к существующему пользователю) |
Пример успешного ответа
auth/vk_signin¶
Обработка OAuth кода от VK для входа или привязки аккаунта.
HTTP-метод: GET
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: vk_signin |
| code | ✅ | string | OAuth код от VK |
| state | ✅ | string | State параметр для проверки CSRF |
| device_id | ✅ | string | ID устройства для OAuth запроса |
| token | ❌ | string | API-токен аутентификации (опционально, для привязки к существующему аккаунту) |
Пример запроса
auth/whmcslogin¶
Основной метод входа через учетные данные WHMCS (email/password) или SSO.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: whmcslogin |
| user | ❌ | string | Email пользователя (если не SSO) |
| password | ❌ | string | Пароль пользователя (если не SSO) |
| sso | ❌ | string | Тип SSO (google, github, vk) |
| sso_hash | ❌ | string | Хеш SSO сессии |
| location | ❌ | string | Локация биллинга (например, NL, RU). Если не указана, используется Auto. |
| ttl | ❌ | integer | Время жизни токена в секундах (по умолчанию 86400) |
| fix_ip | ❌ | integer | Привязать токен к IP (1 или 0) |
| full_customer_data | ❌ | string | Включить полные данные клиента в ответ (1 или 0) |
| VisitorID | ❌ | string | ID посетителя для аффилиатной системы |
Пример запроса
Пример успешного ответа
{
"result": {
"token": "whmcs_token_123",
"role": "Customer",
"role_type": "Customer",
"whmcs_id": 555,
"whmcs_location": "NL",
"whmcs_token": "",
"permissions": [
"eq_list",
"invoice_list"
],
"corporate": 0,
"verified": "",
"token_expire": 1705330000,
"new": 1,
"country": "Netherlands",
"country_code": "NL",
"currency_code": "EUR",
"vat": "",
"VisitorID": "vis_123",
"prebill": 0,
"billing_options": {
"location": "NL",
"company": "HostKey NL",
"active": 1,
"allowed_payments": [
"cc",
"pp"
],
"native_endpoint": "https://nl.hostkey.com",
"sumsub_kyc": 1
},
"2fa": "sms"
}
}