88API88API
AI-приложенияAPIПомощь и поддержка

пользовательский модуль

Описание функции

Префикс интерфейса унифицирован как http(s)://<your-domain>

В производственных средах следует использовать HTTPS, чтобы гарантировать токены аутентификации. HTTP рекомендуется только для сред разработки.

Базовая система управления пользователями реализует четырехуровневую систему разрешений (публичный/пользователь/администратор/корневой доступ) и обеспечивает полное управление жизненным циклом пользователей. Он включает в себя регистрацию и вход в систему, личную информацию, управление токенами, оплату пополнения счета, систему продвижения и другие функции. Поддерживает 2FA, проверку электронной почты и несколько способов входа в систему OAuth.

Регистрация/вход в аккаунт

🔐 Аутентификация не требуется

Зарегистрируйте новый аккаунт

  • Имя интерфейса: зарегистрируйте новую учетную запись.
  • Метод HTTP: POST
  • Путь: /api/user/register
  • Требования аутентификации: общедоступно.
  • Введение в функцию: создание новой учетной записи пользователя, поддержка функций проверки электронной почты и кода рекомендации.

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

const response = await fetch('/api/user/register', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    username: "newuser",
    password: "password123",
    email: "user@example.com",
    verification_code: "123456",
    aff_code: "INVITE123"
  })
});
const data = await response.json();

✅ Пример успешного ответа:

{
  "success": true,
  "message": "Регистрация пользователя прошла успешно"
}

❗ Пример реакции на ошибку:

{
  "success": false,
  "message": "Администратор закрыл регистрацию нового пользователя"
}

🧾 Описание поля:

  • username (строка): имя пользователя, обязательно.
  • username (строка): требуется пароль.
  • username (строка): адрес электронной почты, требуется, если включена проверка электронной почты.
  • username (строка): код подтверждения электронной почты, требуется, если включена проверка электронной почты.
  • username (строка): код рекомендации, необязательно.

Вход пользователя

  • Имя интерфейса: Логин пользователя.
  • Метод HTTP: POST
  • Путь: username
  • Требования аутентификации: общедоступно.
  • Введение в функцию: вход в учетную запись пользователя, поддержка двухэтапной проверки (2FA).

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

const response = await fetch('/api/user/login', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    username: "testuser",
    password: "password123"
  })
});
const data = await response.json();

✅ Пример успешного ответа (без 2FA):

{
  "success": true,
  "message": "Вход успешен",
  "data": {
    "token": "user_access_token",
    "user": {
      "id": 1,
      "username": "testuser",
      "role": 1,
      "quota": 1000000
    }
  }
}

✅ Пример успешного ответа (требуется 2FA):

{
  "success": true,
  "message": "Пожалуйста, введите код двухэтапной проверки",
  "data": {
    "require_2fa": true
  }
}

❗ Пример реакции на ошибку:

{
  "success": false,
  "message": "Администратор отключил вход по паролю"
}

🧾 Описание поля:

  • username (строка): имя пользователя, обязательно.
  • username (строка): требуется пароль.
  • username (логическое значение): требуется ли двухэтапная проверка.

Обратный вызов платежа Epay

  • Имя интерфейса: обратный вызов платежа Epay.
  • Метод HTTP: GET
  • Путь: username
  • Требования аутентификации: общедоступно.
  • Введение в функцию: обработка уведомлений об обратном платеже из системы EasyPay.

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

_// Обычно перезванивает автоматически платежной системой.,Переднему концу не нужно активно звонить  _
_// ПримерURL: /api/user/epay/notify?trade_no=USR1NO123456&money=10.00&trade_status=TRADE_SUCCESS_

✅ Пример успешного ответа:

{
  "success": true,
  "message": "Платеж успешен"
}

❗ Пример реакции на ошибку:

{
  "success": false,
  "message": "Заказ не существует или был обработан"
}

🧾 Описание поля:

  • trade_no (строка): номер заказа транзакции.
  • trade_no (строка): Сумма платежа
  • trade_no (строка): статус транзакции.
  • trade_no (строка): проверка подписи

Список всех групп (неаутентифицированная версия)

  • Имя интерфейса: список всех групп.
  • Метод HTTP: GET
  • Путь: trade_no
  • Требования аутентификации: общедоступно.
  • Введение в функцию: получите всю информацию о группах пользователей в системе и получите к ней доступ без входа в систему.

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

const response = await fetch('/api/user/groups', {
  method: 'GET',
  headers: {
    'Content-Type': 'application/json'
  }
});
const data = await response.json();

✅ Пример успешного ответа:

{
  "success": true,
  "message": "",
  "data": {
    "default": {
      "ratio": 1.0,
      "desc": "Группировка по умолчанию"
    },
    "vip": {
      "ratio": 0.8,
      "desc": "VIPГруппа"
    },
    "auto": {
      "ratio": "автоматический",
      "desc": "Автоматически выбирать лучшую группировку"
    }
  }
}

❗ Пример реакции на ошибку:

{
  "success": false,
  "message": "Не удалось получить информацию о группе."
}

🧾 Описание поля:

data (объект): отображение информации о группе.

  • ключ (строка): имя группы
  • data (число/строка): увеличение группировки, «авто» означает автоматический выбор.
  • data (строка): описание группы.

🔐 Аутентификация пользователя

Выйти

  • Имя интерфейса: выход из системы.
  • Метод HTTP: GET
  • Путь: data
  • Требования аутентификации: Пользователь
  • Введение в функцию: очистить сеанс пользователя и выйти из системы.

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

const response = await fetch('/api/user/logout', {
  method: 'GET',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer your_user_token',
    'New-Api-User': 'your_user_id'
  }
});
const data = await response.json();

✅ Пример успешного ответа:

{
  "success": true,
  "message": ""
}

❗ Пример реакции на ошибку:

{
  "success": false,
  "message": "Очистка сеанса не удалась"
}

🧾 Описание поля:

Нет параметров запроса

Собственная операция пользователя

🔐 Аутентификация пользователя

Узнайте, в какой группе вы состоите

  • Имя интерфейса: узнайте группу, в которой вы находитесь.
  • Метод HTTP: GET
  • Путь: /api/user/self/groups
  • Требования аутентификации: Пользователь
  • Введение в функцию: получение информации о группировке, доступной текущему вошедшему в систему пользователю, включая увеличение и описание группировки.

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

const response = await fetch('/api/user/self/groups', {
  method: 'GET',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer your_user_token',
    'New-Api-User': 'your_user_id'
  }
});
const data = await response.json();

✅ Пример успешного ответа:

{
  "success": true,
  "message": "",
  "data": {
    "default": {
      "ratio": 1.0,
      "desc": "Группировка по умолчанию"
    },
    "vip": {
      "ratio": 0.8,
      "desc": "VIPГруппа"
    },
    "auto": {
      "ratio": "автоматический",
      "desc": "Автоматически выбирать лучшую группировку"
    }
  }
}

❗ Пример реакции на ошибку:

{
  "success": false,
  "message": "Не удалось получить информацию о группе."
}

🧾 Описание поля:

data (объект): отображение информации о доступной пользователю группе group.go: 25-48

  • ключ (строка): имя группы
  • data (число/строка): увеличение группировки, «автоматический» означает автоматический выбор оптимальной группировки.
  • data (строка): описание группы.

Получить личную информацию

  • Имя интерфейса: получение личной информации.
  • Метод HTTP: GET
  • Путь: data
  • Требования аутентификации: Пользователь
  • Введение в функцию: получение подробной информации о текущем пользователе, включая разрешения, квоты, настройки и т. д.

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

const response = await fetch('/api/user/self', {
  method: 'GET',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer your_user_token',
    'New-Api-User': 'your_user_id'
  }
});
const data = await response.json();

✅ Пример успешного ответа:

{
  "success": true,
  "message": "",
  "data": {
    "id": 1,
    "username": "testuser",
    "display_name": "Test User",
    "role": 1,
    "status": 1,
    "email": "user@example.com",
    "group": "default",
    "quota": 1000000,
    "used_quota": 50000,
    "request_count": 100,
    "aff_code": "ABC123",
    "aff_count": 5,
    "aff_quota": 10000,
    "aff_history_quota": 50000,
    "inviter_id": 0,
    "linux_do_id": "",
    "setting": "{}",
    "stripe_customer": "",
    "sidebar_modules": "{\"chat\":{\"enabled\":true}}",
    "permissions": {
      "can_view_logs": true,
      "can_manage_tokens": true
    }
  }
}

❗ Пример реакции на ошибку:

{
  "success": false,
  "message": "Не удалось получить информацию о пользователе."
}

🧾 Описание поля:

  • id (числовой): идентификатор пользователя.
  • id (строка): имя пользователя
  • id (строка): отображаемое имя.
  • id (номер): роль пользователя, 1 = обычный пользователь, 10 = администратор, 100 = пользователь root.
  • id (номер): статус пользователя, 1 = нормально, 2 = отключено
  • id (строка): адрес электронной почты.
  • id (строка): группа, к которой он принадлежит.
  • id (число): общая квота
  • id (число): использованная квота.
  • id (число): количество запросов.
  • id (строка): код рекомендации.
  • id (число): количество рефералов.
  • id (число): квота реферального вознаграждения
  • id (число): историческая рекомендуемая квота.
  • id (номер): идентификатор приглашающего.
  • id (строка): идентификатор учетной записи LinuxDo.
  • id (строка): строка JSON пользовательских настроек.
  • id (строка): идентификатор клиента Stripe.
  • id (строка): строка JSON конфигурации модуля боковой панели.
  • id (объект): информация о разрешениях пользователя.

Получите видимость модели

  • Имя интерфейса: получение видимости модели.
  • Метод HTTP: GET
  • Путь: id
  • Требования аутентификации: Пользователь
  • Введение в функцию: получение списка моделей ИИ, доступных текущему пользователю.

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

const response = await fetch('/api/user/models', {
  method: 'GET',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer your_user_token',
    'New-Api-User': 'your_user_id'
  }
});
const data = await response.json();

✅ Пример успешного ответа:

{
  "success": true,
  "message": "",
  "data": [
    "gpt-3.5-turbo",
    "gpt-4",
    "claude-3-sonnet",
    "claude-3-haiku"
  ]
}

❗ Пример реакции на ошибку:

{
  "success": false,
  "message": "Не удалось получить список моделей."
}

🧾 Описание поля:

data (массив): список названий моделей, доступных пользователю.

Изменение личной информации

  • Имя интерфейса: изменение личной информации.
  • Метод HTTP: PUT
  • Путь: data
  • Требования аутентификации: Пользователь
  • Введение в функцию: обновление личной информации пользователя или настроек боковой панели.

💡 Пример запроса (обновление личной информации):

const response = await fetch('/api/user/self', {
  method: 'PUT',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer your_user_token',
    'New-Api-User': 'your_user_id'
  },
  body: JSON.stringify({
    display_name: "New Display Name",
    email: "newemail@example.com"
  })
});
const data = await response.json();

💡 Пример запроса (обновление настроек боковой панели):

const response = await fetch('/api/user/self', {
  method: 'PUT',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer your_user_token',
    'New-Api-User': 'your_user_id'
  },
  body: JSON.stringify({
    sidebar_modules: JSON.stringify({
      chat: { enabled: true, playground: true },
      console: { enabled: true, token: true }
    })
  })
});
const data = await response.json();

✅ Пример успешного ответа:

{
  "success": true,
  "message": "Обновление успешно выполнено"
}

❗ Пример реакции на ошибку:

{
  "success": false,
  "message": "Ввод незаконен"
}

🧾 Описание поля:

  • display_name (строка): отображаемое имя, необязательно.
  • display_name (строка): адрес электронной почты, необязательно.
  • display_name (строка): новый пароль, необязательно.
  • display_name (строка): строка JSON конфигурации модуля боковой панели, необязательно.

Отменить учетную запись

  • Имя интерфейса: выход из учетной записи.
  • Метод HTTP: УДАЛИТЬ
  • Путь: display_name
  • Требования аутентификации: Пользователь
  • Введение в функцию: удаление текущей учетной записи пользователя. Пользователей root удалить невозможно.

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

const response = await fetch('/api/user/self', {
  method: 'DELETE',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer your_user_token',
    'New-Api-User': 'your_user_id'
  }
});
const data = await response.json();

✅ Пример успешного ответа:

{
  "success": true,
  "message": ""
}

❗ Пример реакции на ошибку:

{
  "success": false,
  "message": "Не могу удалить учетную запись суперадминистратора"
}

🧾 Описание поля:

Нет параметров запроса

Создать токен доступа уровня пользователя

  • Имя интерфейса: создать токен доступа на уровне пользователя.
  • Метод HTTP: GET
  • Путь: /api/user/token
  • Требования аутентификации: Пользователь
  • Введение в функцию: создание нового токена доступа для текущего пользователя для вызовов API.

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

const response = await fetch('/api/user/token', {
  method: 'GET',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer your_user_token',
    'New-Api-User': 'your_user_id'
  }
});
const data = await response.json();

✅ Пример успешного ответа:

{
  "success": true,
  "message": "",
  "data": "`<YOUR_API_KEY>`"
}

❗ Пример реакции на ошибку:

{
  "success": false,
  "message": "Не удалось сгенерировать токен"
}

🧾 Описание поля:

data (строка): созданный токен доступа.

Получите информацию о промокоде

  • Имя интерфейса: получение информации о промокоде.
  • Метод HTTP: GET
  • Путь: data
  • Требования аутентификации: Пользователь
  • Введение в функцию: получите или сгенерируйте промокод пользователя, который используется для приглашения новых пользователей зарегистрироваться.

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

const response = await fetch('/api/user/aff', {
  method: 'GET',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer your_user_token',
    'New-Api-User': 'your_user_id'
  }
});
const data = await response.json();

✅ Пример успешного ответа:

{
  "success": true,
  "message": "",
  "data": "ABC123"
}

❗ Пример реакции на ошибку:

{
  "success": false,
  "message": "Не удалось получить промокод"
}

🧾 Описание поля:

data (строка): промокод пользователя. Если он не существует, автоматически будет сгенерирована случайная строка из 4 цифр.

Прямое пополнение баланса

  • Название интерфейса: прямое пополнение баланса.
  • Метод HTTP: POST
  • Путь: data
  • Требования аутентификации: Пользователь
  • Введение в функцию: используйте код погашения для пополнения квоты аккаунта.

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

const response = await fetch('/api/user/topup', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer your_user_token',
    'New-Api-User': 'your_user_id'
  },
  body: JSON.stringify({
    key: "REDEEM123456"
  })
});
const data = await response.json();

✅ Пример успешного ответа:

{
  "success": true,
  "message": "Погашение успешно",
  "data": 100000
}

❗ Пример реакции на ошибку:

{
  "success": false,
  "message": "Код активации недействителен или уже использован."
}

🧾 Описание поля:

  • key (строка): требуется код активации.
  • key (число): возвращает сумму квоты, погашенную в случае успеха.

Отправьте платежное поручение

  • Имя интерфейса: Отправить платежное поручение
  • Метод HTTP: POST
  • Путь: key
  • Требования аутентификации: Пользователь
  • Введение в функцию: создание онлайн-платежных поручений с поддержкой нескольких способов оплаты.

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

const response = await fetch('/api/user/pay', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer your_user_token',
    'New-Api-User': 'your_user_id'
  },
  body: JSON.stringify({
    amount: 10000,
    payment_method: "alipay",
    top_up_code: ""
  })
});
const data = await response.json();

✅ Пример успешного ответа:

{
  "success": true,
  "message": "success",
  "data": {
    "pid": "12345",
    "type": "alipay",
    "out_trade_no": "USR1NO123456",
    "notify_url": "https://example.com/notify",
    "return_url": "https://example.com/return",
    "name": "TUC10000",
    "money": "10.00",
    "sign": "abc123def456"
  },
  "url": "https://pay.example.com/submit"
}

❗ Пример реакции на ошибку:

{
  "success": false,
  "message": "Сумма пополнения не может быть меньше 1000"
}

🧾 Описание поля:

  • amount (число): сумма пополнения должна быть больше или равна минимальной сумме пополнения topup.go: 133-136
  • amount (строка): способ оплаты, например «alipay», «wxpay» и т. д.
  • amount (строка): код пополнения, необязательно.
  • amount (объект): параметры формы оплаты.
  • amount (строка): адрес отправки платежа

Остаток платежа

  • Имя интерфейса: Баланс платежа.
  • Метод HTTP: POST
  • Путь: amount
  • Требования аутентификации: Пользователь
  • Введение в функцию: расчет фактической суммы платежа, соответствующей указанной сумме пополнения счета.

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

const response = await fetch('/api/user/amount', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer your_user_token',
    'New-Api-User': 'your_user_id'
  },
  body: JSON.stringify({
    amount: 10000,
    top_up_code: ""
  })
});
const data = await response.json();

✅ Пример успешного ответа:

{
  "success": true,
  "message": "success",
  "data": "10.00"
}

❗ Пример реакции на ошибку:

{
  "success": false,
  "message": "Сумма пополнения не может быть меньше 1000"
}

🧾 Описание поля:

  • amount (число): сумма пополнения должна быть больше или равна минимальной сумме пополнения.
  • amount (строка): код пополнения, необязательно.
  • amount (строка): фактическая сумма к оплате (юани)

Перевод рекламного кредита

  • Название интерфейса: Перевод рекламного кредита.
  • Метод HTTP: POST
  • Путь: amount
  • Требования аутентификации: Пользователь
  • Введение в функцию: конвертируйте сумму вознаграждения по акции в доступную квоту.

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

const response = await fetch('/api/user/aff_transfer', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer your_user_token',
    'New-Api-User': 'your_user_id'
  },
  body: JSON.stringify({
    quota: 50000
  })
});
const data = await response.json();

✅ Пример успешного ответа:

{
  "success": true,
  "message": "Перенос успешен"
}

❗ Пример реакции на ошибку:

{
  "success": false,
  "message": "Недостаточная квота приглашений!"
}

🧾 Описание поля:

quota (число): сумма конвертируемой квоты должна быть больше или равна минимальной квоте единицы.

Обновить настройки пользователя

  • Имя интерфейса: обновить настройки пользователя.
  • Метод HTTP: PUT
  • Путь: quota
  • Требования аутентификации: Пользователь
  • Введение в функцию: обновление конфигурации личных настроек пользователя.

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

const response = await fetch('/api/user/setting', {
  method: 'PUT',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer your_user_token',
    'New-Api-User': 'your_user_id'
  },
  body: JSON.stringify({
    theme: "dark",
    language: "zh-CN",
    notifications: {
      email: true,
      browser: false
    }
  })
});
const data = await response.json();

✅ Пример успешного ответа:

{
  "success": true,
  "message": "Настройки успешно обновлены"
}

❗ Пример реакции на ошибку:

{
  "success": false,
  "message": "Ошибка формата установки"
}

🧾 Описание поля:

  • Тело запроса может содержать любые поля пользовательских настроек и отправляется в формате JSON.
  • Конкретные поля определяются в соответствии с потребностями страницы настроек интерфейса.

Управление пользователями администратора

🔐 Аутентификация администратора

Получить список всех пользователей

  • Имя интерфейса: получить список всех пользователей.
  • Метод HTTP: GET
  • Путь: /api/user/
  • Требования аутентификации: Администратор.
  • Введение в функцию: получение списка информации обо всех пользователях системы на пейджинговой странице.

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

const response = await fetch('/api/user/?p=1&page_size=20', {
  method: 'GET',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer your_admin_token',
    'New-Api-User': 'your_user_id'
  }
});
const data = await response.json();

✅ Пример успешного ответа:

{
  "success": true,
  "message": "",
  "data": {
    "items": [
      {
        "id": 1,
        "username": "testuser",
        "display_name": "Test User",
        "role": 1,
        "status": 1,
        "email": "user@example.com",
        "group": "default",
        "quota": 1000000,
        "used_quota": 50000,
        "request_count": 100
      }
    ],
    "total": 50,
    "page": 1,
    "page_size": 20
  }
}

❗ Пример реакции на ошибку:

{
  "success": false,
  "message": "Не удалось получить список пользователей"
}

🧾 Описание поля:

  • p (номер): номер страницы, по умолчанию — 1.
  • p (номер): количество на странице, по умолчанию — 20.
  • p (массив): список информации о пользователе.
  • p (число): общее количество пользователей.
  • p (номер): номер текущей страницы.
  • p (номер): количество на странице.

Поиск пользователей

  • Имя интерфейса: поиск пользователей.
  • Метод HTTP: GET
  • Путь: p
  • Требования аутентификации: Администратор.
  • Введение в функцию: поиск пользователей по ключевым словам и группам.

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

const response = await fetch('/api/user/search?keyword=test&group=default&p=1&page_size=20', {
  method: 'GET',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer your_admin_token',
    'New-Api-User': 'your_user_id'
  }
});
const data = await response.json();

✅ Пример успешного ответа:

{
  "success": true,
  "message": "",
  "data": {
    "items": [
      {
        "id": 1,
        "username": "testuser",
        "display_name": "Test User",
        "role": 1,
        "status": 1,
        "email": "test@example.com",
        "group": "default"
      }
    ],
    "total": 1,
    "page": 1,
    "page_size": 20
  }
}

❗ Пример реакции на ошибку:

{
  "success": false,
  "message": "Поиск пользователя не удался"
}

🧾 Описание поля:

  • keyword (строка): ключевое слово поиска, может соответствовать имени пользователя, отображаемому имени, адресу электронной почты.
  • keyword (строка): условия фильтра группы пользователей.
  • keyword (номер): номер страницы, по умолчанию — 1.
  • keyword (номер): количество на странице, по умолчанию — 20.

Получение информации об одном пользователе

  • Имя интерфейса: получение индивидуальной информации о пользователе.
  • Метод HTTP: GET
  • Путь: keyword
  • Требования аутентификации: Администратор.
  • Введение в функцию: получение подробной информации об указанном пользователе, включая проверку разрешений.

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

const response = await fetch('/api/user/123', {
  method: 'GET',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer your_admin_token',
    'New-Api-User': 'your_user_id'
  }
});
const data = await response.json();

✅ Пример успешного ответа:

{
  "success": true,
  "message": "",
  "data": {
    "id": 123,
    "username": "targetuser",
    "display_name": "Target User",
    "role": 1,
    "status": 1,
    "email": "target@example.com",
    "group": "default",
    "quota": 1000000,
    "used_quota": 50000,
    "request_count": 100,
    "aff_code": "ABC123",
    "aff_count": 5
  }
}

❗ Пример реакции на ошибку:

{
  "success": false,
  "message": "Не имеют права получать информацию о пользователях того же уровня или выше"
}

🧾 Описание поля:

  • id (числовой): идентификатор пользователя, передаваемый через URL-адрес.
  • Возвращается полная информация о пользователе, но администраторы не могут просматривать информацию пользователей с тем же или более высоким уровнем разрешений.

Создать пользователя

  • Имя интерфейса: Создать пользователя.
  • Метод HTTP: POST
  • Путь: id
  • Требования аутентификации: Администратор.
  • Введение в функцию: Создайте новую учетную запись пользователя. Администраторы не могут создавать пользователей с разрешениями, превышающими или равными их собственным.

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

const response = await fetch('/api/user/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer your_admin_token',
    'New-Api-User': 'your_user_id'
  },
  body: JSON.stringify({
    username: "newuser",
    password: "password123",
    display_name: "New User",
    role: 1
  })
});
const data = await response.json();

✅ Пример успешного ответа:

{
  "success": true,
  "message": ""
}

❗ Пример реакции на ошибку:

{
  "success": false,
  "message": "Невозможно создать пользователя с разрешениями, превышающими или равными вашим собственным."
}

🧾 Описание поля:

  • username (строка): имя пользователя, обязательно.
  • username (строка): требуется пароль.
  • username (строка): отображаемое имя, необязательно, по умолчанию — имя пользователя.
  • username (число): роль пользователя должна быть меньше текущей роли администратора.

Заморозка/сброс и другие операции управления

  • Имя интерфейса: операции управления, такие как фиксация/сброс.
  • Метод HTTP: POST
  • Путь: username
  • Требования аутентификации: Администратор.
  • Введение в функцию: выполнение операций управления пользователями, включая включение, отключение, удаление, повышение, понижение версии и т. д.

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

const response = await fetch('/api/user/manage', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer your_admin_token',
    'New-Api-User': 'your_user_id'
  },
  body: JSON.stringify({
    id: 123,
    action: "disable"
  })
});
const data = await response.json();

✅ Пример успешного ответа:

{
  "success": true,
  "message": ""
}

❗ Пример реакции на ошибку:

{
  "success": false,
  "message": "Невозможно отключить пользователя суперадминистратора"
}

🧾 Описание поля:

  • id (число): обязательный идентификатор целевого пользователя.
  • id (строка): тип операции, обязательный, необязательное значение:
    • id: отключить пользователя
    • id: включить пользователя
    • id: удалить пользователя
    • id: повышение до администратора (доступно только для пользователей root)
    • id: переход к обычному пользователю.

Обновить пользователя

  • Имя интерфейса: Обновить пользователя.
  • Метод HTTP: PUT
  • Путь: id
  • Требования аутентификации: Администратор.
  • Введение в функцию: обновление информации о пользователе, включая проверку разрешений и записи об изменении квот.

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

const response = await fetch('/api/user/', {
  method: 'PUT',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer your_admin_token',
    'New-Api-User': 'your_user_id'
  },
  body: JSON.stringify({
    id: 123,
    username: "updateduser",
    display_name: "Updated User",
    email: "updated@example.com",
    quota: 2000000,
    role: 1,
    status: 1
  })
});
const data = await response.json();

✅ Пример успешного ответа:

{
  "success": true,
  "message": ""
}

❗ Пример реакции на ошибку:

{
  "success": false,
  "message": "Не имеете права обновлять информацию о пользователях с тем же или более высоким уровнем разрешений."
}

🧾 Описание поля:

  • id (номер): требуется идентификатор пользователя.
  • id (строка): имя пользователя, необязательно.
  • id (строка): отображаемое имя, необязательно.
  • id (строка): адрес электронной почты, необязательно.
  • id (строка): новый пароль, необязательно, если пусто, пароль не будет обновлен.
  • id (число): квота пользователя, необязательно.
  • id (число): роль пользователя не может быть больше или равна текущей роли администратора.
  • id (номер): статус пользователя, необязательно.

Удалить пользователя

  • Имя интерфейса: удалить пользователя.
  • Метод HTTP: УДАЛИТЬ
  • Путь: id
  • Требования аутентификации: Администратор.
  • Введение в функцию: принудительное удаление указанных пользователей. Администраторы не могут удалять пользователей с разрешениями того же или более высокого уровня.

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

const response = await fetch('/api/user/123', {
  method: 'DELETE',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer your_admin_token',
    'New-Api-User': 'your_user_id'
  }
});
const data = await response.json();

✅ Пример успешного ответа:

{
  "success": true,
  "message": ""
}

❗ Пример реакции на ошибку:

{
  "success": false,
  "message": "У вас нет разрешения на удаление пользователей с тем же уровнем разрешений или выше."
}

🧾 Описание поля:

  • id (числовой): идентификатор пользователя, передаваемый через URL-адрес.
  • Выполните операцию жесткого удаления и не сможете восстановить

Содержание

Регистрация/вход в аккаунт
🔐 Аутентификация не требуется
Зарегистрируйте новый аккаунт
Вход пользователя
Обратный вызов платежа Epay
Список всех групп (неаутентифицированная версия)
🔐 Аутентификация пользователя
Выйти
Собственная операция пользователя
🔐 Аутентификация пользователя
Узнайте, в какой группе вы состоите
Получить личную информацию
Получите видимость модели
Изменение личной информации
Отменить учетную запись
Создать токен доступа уровня пользователя
Получите информацию о промокоде
Прямое пополнение баланса
Отправьте платежное поручение
Остаток платежа
Перевод рекламного кредита
Обновить настройки пользователя
Управление пользователями администратора
🔐 Аутентификация администратора
Получить список всех пользователей
Поиск пользователей
Получение информации об одном пользователе
Создать пользователя
Заморозка/сброс и другие операции управления
Обновить пользователя
Удалить пользователя