Перейти к содержанию

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 Код двухфакторной аутентификации

Пример запроса

curl -s "https://invapi.hostkey.ru/auth.php" -X POST \
--data "action=2fa_check" \
--data "token=HOSTKEY_TOKEN" \
--data "user_token=VALUE"
Пример успешного ответа
{
"result": "2FA OK"
}
Примеры ошибок
{
"code": -1,
"message": "Invalid verification token"
}

auth/2fa_resend

Запрашивает повторную отправку кода 2FA на привязанный метод.

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action string Идентификатор метода: 2fa_resend
token string Токен сессии пользователя
from string Источник запроса (user_profile, resend_dialog)

Пример запроса

curl -s "https://invapi.hostkey.ru/auth.php" -X POST \
--data "action=2fa_resend" \
--data "token=HOSTKEY_TOKEN"
Пример успешного ответа
{
"result": "OK",
"message": "2FA token sent"
}
Примеры ошибок
{
"code": -1,
"message": "Invalid customer record"
}

auth/billing_list

Возвращает список доступных биллинговых систем (WHMCS) для текущего домена или пользователя.

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action string Идентификатор метода: billing_list
token string Токен сессии для авторизации. Если не передан, возвращается список для всех биллингов.

Пример запроса

curl -s "https://invapi.hostkey.ru/auth.php" -X POST \
--data "action=billing_list"
Пример успешного ответа
{
"result": "OK",
"billings": [
{
"billing": "whmcs",
"company": "HostKey",
"location": "NL"
}
]
}
Примеры ошибок
{
"code": -2,
"message": "auth: invalid token"
}

auth/email_check

Инициализирует или проверяет верификацию email адреса пользователя.

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action string Идентификатор метода: email_check
user_email string Email адрес для проверки
location string Биллинг локация (например, RU, US)
user_token string Код подтверждения, отправленный на email (для этапа верификации)

Пример запроса

curl -s "https://invapi.hostkey.ru/auth.php" -X POST \
--data "action=email_check" \
--data "user_email=user@example.com" \
--data "location=RU"
Пример успешного ответа
{
"result": "OK",
"state": "sent",
"message": "Verification email sent to user@example.com, please confirm in 15 minutes"
}
Примеры ошибок
{
"code": -1,
"message": "Email verification timeout: please start again"
}

auth/flip_tag

Устанавливает или удаляет тег у клиента (например, auto_credit).

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action string Идентификатор метода: flip_tag
token string Токен сессии
tag string Имя тега для переключения (разрешен только 'auto_credit' для роли user)

Пример запроса

curl -s "https://invapi.hostkey.ru/auth.php" -X POST \
--data "action=flip_tag" \
--data "token=HOSTKEY_TOKEN" \
--data "tag=VALUE"
Пример успешного ответа
{
"result": "OK",
"message": "auth/flip_tag: tag auto_credit created",
"action": "created"
}
Примеры ошибок
{
"code": -1,
"message": "auth/flip_tag: invalid tag"
}

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 пользователя для фильтрации лога

Пример запроса

curl -s "https://invapi.hostkey.ru/auth.php" -X POST \
--data "action=get_log" \
--data "token=HOSTKEY_TOKEN"
Пример успешного ответа
{
"result": "OK",
"data": [
{
"id": 123,
"action": "login",
"ip": "1.2.3.4",
"time": "2024-01-15 10:00:00"
}
]
}
Примеры ошибок
{
"code": 404,
"message": "Log is empty"
}

auth/get_log_details

Возвращает подробную информацию о конкретном событии лога по токену.

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action string Идентификатор метода: get_log_details
token string Токен сессии для авторизации
user_token string Токен события лога для получения деталей

Пример запроса

curl -s "https://invapi.hostkey.ru/auth.php" -X POST \
--data "action=get_log_details" \
--data "token=HOSTKEY_TOKEN" \
--data "user_token=VALUE"
Пример успешного ответа
{
"result": "OK",
"log": {
"id": 123,
"message": "Successful login",
"ip": "1.2.3.4",
"hash": "abc123...",
"token": "xyz789...",
"level": 0,
"created_at": "2023-10-27 10:00:00"
}
}
Примеры ошибок
{
"code": -1,
"message": "Invalid period or log is empty"
}

auth/github_init

Возвращает данные для инициализации OAuth потока с GitHub.

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action string Идентификатор метода: github_init
- - - Других параметров нет

Пример запроса

curl -s "https://invapi.hostkey.ru/auth.php" -X POST \
--data "action=github_init"
Пример успешного ответа
{
"result": "OK",
"data": {
"client_id": "gh_client_123",
"redirect_uri": "https://example.com/callback"
},
"error_code": null
}
Примеры ошибок
{
"code": -1,
"message": "Configuration error"
}

auth/github_signin

Обработка OAuth кода от GitHub для входа или привязки аккаунта.

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action string Идентификатор метода: github_signin
code string OAuth код от GitHub
state string State параметр (используется как токен сессии для привязки)

Пример запроса

curl -s "https://invapi.hostkey.ru/auth.php" -X POST \
--data "action=github_signin" \
--data "code=VALUE" \
--data "state=VALUE" \
--data "token=HOSTKEY_TOKEN"
Пример успешного ответа
{
"result": "OK",
"sso": "github",
"sso_hash": "abc123..."
}
Примеры ошибок
{
"code": -1,
"message": "Error occur when querying Github"
}

auth/google_signin

Обработка JWT токена от Google для входа или привязки аккаунта.

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action string Идентификатор метода: google_signin
credential string JWT токен от Google
token string Токен текущей сессии для привязки

Пример запроса

curl -s "https://invapi.hostkey.ru/auth.php" -X POST \
--data "action=google_signin" \
--data "credential=VALUE"
Пример успешного ответа
{
"result": "OK",
"sso": "google",
"sso_hash": "def456...",
"error_code": null
}
Примеры ошибок
{
"code": -1,
"message": "credential is missing"
}

auth/info

Возвращает информацию о текущей сессии, правах доступа, серверах и биллинге.

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action string Идентификатор метода: info
token string Токен сессии

Пример запроса

curl -s "https://invapi.hostkey.ru/auth.php" -X POST \
--data "action=info" \
--data "token=HOSTKEY_TOKEN"
Пример успешного ответа
{
"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": []
}
}
Примеры ошибок
{
"code": -2,
"message": "auth: invalid token #13"
}

auth/login

Авторизация клиента или сервера по API ключу.

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action string Идентификатор метода: login
key string API ключ
ttl int Время жизни токена в секундах
base string Базовый URL для invapi (опционально)

Пример запроса

curl -s "https://invapi.hostkey.ru/auth.php" -X POST \
--data "action=login" \
--data "key=VALUE"
Пример успешного ответа
{
"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
}
}
Примеры ошибок
{
"code": -1,
"message": "auth/login: no key specified"
}

auth/logout

Очищает текущий токен сессии.

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action string Идентификатор метода: logout
token string Токен сессии для удаления

Пример запроса

curl -s "https://invapi.hostkey.ru/auth.php" -X POST \
--data "action=logout" \
--data "token=HOSTKEY_TOKEN"
Пример успешного ответа
{
"result": "OK",
"message": "access token cleared"
}
Примеры ошибок
{
"code": -2,
"message": "auth: no token specified"
}

auth/session_reset

Сбрасывает все активные сессии пользователя по email и токену сброса.

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action string Идентификатор метода: session_reset
user_email string Email пользователя, сессии которого нужно сбросить
reset_token string Токен сброса сессии
confirm int Флаг подтверждения действия (1)

Пример запроса

curl -s "https://invapi.hostkey.ru/auth.php" -X POST \
--data "action=session_reset" \
--data "user_email=user@example.com" \
--data "reset_token=a1b2c3d4e5f6"
Пример успешного ответа
{
"result": "OK",
"message": "Sessions reset"
}
Примеры ошибок
{
"code": -1,
"message": "Invalid reset token"
}

auth/set_tag

Устанавливает или удаляет тег у клиента с возможностью указания значения.

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action string Идентификатор метода: set_tag
token string Токен сессии
tag string Имя тега
set string Значение тега (обязательный параметр согласно коду)

Пример запроса

curl -s "https://invapi.hostkey.ru/auth.php" -X POST \
--data "action=set_tag" \
--data "token=HOSTKEY_TOKEN" \
--data "tag=VALUE" \
--data "set=VALUE"
Пример успешного ответа
{
"result": "OK",
"message": "auth/set_tag: tag auto_credit created",
"action": "set",
"error_code": null
}
Примеры ошибок
{
"code": -1,
"message": "auth/set_tag: tag is missing"
}

auth/tg_verify

Привязывает Telegram username к аккаунту пользователя.

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action string Идентификатор метода: tg_verify
token string Токен сессии
tg_username string Имя пользователя Telegram (без @)

Пример запроса

curl -s "https://invapi.hostkey.ru/auth.php" -X POST \
--data "action=tg_verify" \
--data "token=HOSTKEY_TOKEN" \
--data "tg_username=VALUE"
Пример успешного ответа
{
"result": "OK",
"bot_url": "https://t.me/hostkey_bot"
}
Примеры ошибок
{
"code": -1,
"message": "Illegal TG username"
}

auth/vk_init

Возвращает данные для инициализации OAuth потока с VK ID.

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action string Идентификатор метода: vk_init
token string Токен текущей сессии (опционально, используется для привязки SSO к существующему пользователю)

Пример запроса

curl -s "https://invapi.hostkey.ru/auth.php" -X POST \
--data "action=vk_init"
Пример успешного ответа
{
"result": "OK",
"data": {
"client_id": "vk_client_id_from_config",
"redirect_uri": "https://example.com/callback",
"code_challenge": "base64url_encoded_sha256_challenge",
"device_id": "random_device_id_24chars",
"state": "random_state_30chars_id6chars"
}
}
Примеры ошибок
{
"code": -1,
"message": "Configuration error or internal server error"
}

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-токен аутентификации (опционально, для привязки к существующему аккаунту)

Пример запроса

curl -s "https://invapi.hostkey.ru/auth.php" -X GET \
--data "action=vk_signin" \
--data "code=VALUE" \
--data "state=VALUE" \
--data "device_id=VALUE"
Пример успешного ответа
{
"result": "OK",
"sso": "vk",
"sso_hash": "a1b2c3d4e5f6..."
}
Примеры ошибок
{
"code": -1,
"message": "no state"
}

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 посетителя для аффилиатной системы

Пример запроса

curl -s "https://invapi.hostkey.ru/auth.php" -X POST \
--data "action=whmcslogin" \
--data "user=user@example.com" \
--data "password=secret123"
Пример успешного ответа
{
"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"
}
}
Примеры ошибок
{
"code": -2,
"message": "auth: empty username"
}

question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×