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

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 Валидный токен сессии для проверки прав доступа.

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

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

auth/login

Авторизация пользователя по API-ключу. Возвращает токен сессии, список доступных серверов и права доступа.

HTTP-метод: POST

Параметры:

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

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

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

auth/logout

Очищает указанный токен доступа, завершая сессию пользователя.

HTTP-метод: POST|GET

Параметры:

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

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

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

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.

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

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

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