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

auth.php

Модуль аутентификации и авторизации для платформы: управление сессиями, вход через WHMCS, API-ключи, SSO (Google, GitHub, VK), двухфакторная аутентификация и проверка токенов.

Методы API

Метод Действие Описание
info получение информации о токене Возвращает информацию о текущей сессии, правах доступа, привязанных серверах и статусе верификации клиента.
login вход по API ключу Авторизация пользователя с использованием API ключа. Возвращает токен сессии и список доступных серверов.
logout завершение сессии Очищает текущий токен доступа и завершает сессию пользователя.
whmcslogin вход через WHMCS Авторизация через учетные данные WHMCS (email/пароль) или 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": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6",
    "role": "Customer",
    "role_type": "Customer",
    "email": "user@example.com",
    "whmcs_id": "12345",
    "whmcs_location": "RU",
    "customer_id": "67890",
    "servers": [
      101,
      102,
      103
    ],
    "permissions": [
      "servers/list",
      "servers/info",
      "invoices/list"
    ],
    "token_expire": 1735689600,
    "verified": true,
    "corporate": false,
    "prebill": false,
    "billing_options": {
      "location": "RU",
      "company": "HostKey Russia",
      "active": true,
      "allowed_payments": [
        "cc",
        "bank_transfer"
      ]
    },
    "private_ranges": [],
    "private_vlans": [],
    "default_lang": "ru",
    "client_ip": "192.168.1.1",
    "subaccount": null,
    "show_products": 1,
    "manage_products": 1,
    "show_invoices": 1,
    "manage_orders": 1,
    "ipsubnet_announce": 1,
    "edit_master_profile": 1,
    "billing_servers": [],
    "deploy_keys": {},
    "pending": [],
    "2fa": null
  }
}
Примеры ошибок
{
  "code": -2,
  "message": "auth: invalid token #13",
  "description": "Неверный или просроченный токен"
}

auth/login

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

HTTP-метод: POST|GET

Параметры:

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

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

curl -s "https://invapi.hostkey.ru/auth" -X POST \
--data "action=login" \
--data "key=VALUE"
Пример успешного ответа
{
  "result": {
    "token": "string",
    "role": "string",
    "role_type": "string",
    "whmcs_id": "string",
    "whmcs_location": "string",
    "servers": [
      201,
      202
    ],
    "invapi": "string",
    "customer_id": "string",
    "permissions": [
      "string"
    ],
    "token_expire": 1735693200,
    "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/пароль) или 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, EU). Если не указан, используется автовыбор.
ttl int Время жизни токена в секундах.
full_customer_data string Флаг для возврата полных данных клиента в ответе.
apikey string API ключ для обхода 2FA (если разрешено).

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

curl -s "https://invapi.hostkey.ru/auth" -X POST \
--data "action=whmcslogin" \
--data "user=VALUE" \
--data "password=VALUE"
Пример успешного ответа
{
  "result": {
    "token": "q1w2e3r4t5y6u7i8o9p0a1s2d3f4g5h6",
    "role": "Customer",
    "role_type": "Customer",
    "whmcs_id": "11223",
    "whmcs_location": "RU",
    "whmcs_token": "",
    "permissions": [
      "servers/list",
      "invoices/list",
      "profile/edit"
    ],
    "corporate": 0,
    "verified": "yes",
    "token_expire": 1735696800,
    "new": 1,
    "country": "Russia",
    "country_code": "RU",
    "currency_code": "RUB",
    "vat": "7700000000",
    "VisitorID": "VIS123456",
    "prebill": 0,
    "billing_options": {
      "location": "RU",
      "company": "HostKey",
      "active": true,
      "allowed_payments": [
        "cc",
        "bank_transfer"
      ]
    }
  }
}
Примеры ошибок
{
  "code": -2,
  "message": "auth: empty username"
}

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