пользовательский модуль
Описание функции
Префикс интерфейса унифицирован как 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-136amount(строка): способ оплаты, например «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-адрес.- Выполните операцию жесткого удаления и не сможете восстановить