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

Модуль управления токенами

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

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

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

Полная система управления пользовательскими API-токенами. Поддерживает создание, обновление, удаление токенов, пакетные операции и другие функции. Включает ограничения модели, ограничения IP, управление квотами, сроком действия и другие усовершенствованные элементы управления. Основной источник данных внешней страницы токена.

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

Получите все жетоны

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

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

const response = await fetch('/api/token/?p=1&size=20', {
  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": {
    "items": [
      {
        "id": 1,
        "name": "API Token",
        "key": "`<YOUR_API_KEY>`",
        "status": 1,
        "remain_quota": 1000000,
        "unlimited_quota": false,
        "expired_time": 1640995200,
        "created_time": 1640908800,
        "accessed_time": 1640995000
      }
    ],
    "total": 5,
    "page": 1,
    "page_size": 20
  }
}

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

{
  "success": false,
  "message": "ПолучатьTokenСписок не выполнен"
}

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

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

Токен поиска

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

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

const response = await fetch('/api/token/search?keyword=api&token=sk-123', {
  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,
      "name": "API Token",
      "key": "sk-your-token-placeholder",
      "status": 1,
      "remain_quota": 1000000
    }
  ]
}

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

{
  "success": false,
  "message": "поискTokenнеудача"
}

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

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

Получите один токен

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

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

const response = await fetch('/api/token/123', {
  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": 123,
    "name": "API Token",
    "key": "sk-your-token-placeholder",
    "status": 1,
    "remain_quota": 1000000,
    "unlimited_quota": false,
    "model_limits_enabled": true,
    "model_limits": "gpt-3.5-turbo,gpt-4",
    "allow_ips": "192.168.1.1,10.0.0.1",
    "group": "default",
    "expired_time": 1640995200,
    "created_time": 1640908800,
    "accessed_time": 1640995000
  }
}

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

{
  "success": false,
  "message": "Tokenне существует"
}

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

id (число): идентификатор токена, передаваемый по URL-пути.

Создать токен

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

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

const response = await fetch('/api/token/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer your_user_token',
    'New-Api-User': 'your_user_id'
  },
  body: JSON.stringify({
    name: "My API Token",
    expired_time: 1640995200,
    remain_quota: 1000000,
    unlimited_quota: false,
    model_limits_enabled: true,
    model_limits: ["gpt-3.5-turbo", "gpt-4"],
    allow_ips: "192.168.1.1,10.0.0.1",
    group: "default"
  })
});
const data = await response.json();

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

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

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

{
  "success": false,
  "message": "Имя токена слишком длинное"
}

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

  • name (строка): имя токена, максимальная длина 30 символов.
  • name (число): временная метка срока действия, -1 означает, что срок действия никогда не истекает.
  • name (число): оставшаяся квота
  • name (логическое значение): иметь ли неограниченную квоту
  • name (логическое значение): включать ли ограничения модели.
  • name (массив): список моделей, разрешенных к использованию.
  • name (строка): разрешенные IP-адреса, разделенные запятой.
  • name (строка): группа, к которой он принадлежит.

Обновить токен

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

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

const response = await fetch('/api/token/', {
  method: 'PUT',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer your_user_token',
    'New-Api-User': 'your_user_id'
  },
  body: JSON.stringify({
    id: 123,
    name: "Updated Token",
    expired_time: 1640995200,
    remain_quota: 2000000,
    unlimited_quota: false,
    model_limits_enabled: true,
    model_limits: ["gpt-3.5-turbo", "gpt-4"],
    allow_ips: "192.168.1.1",
    group: "vip"
  })
});
const data = await response.json();

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

const response = await fetch('/api/token/?status_only=true', {
  method: 'PUT',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer your_user_token',
    'New-Api-User': 'your_user_id'
  },
  body: JSON.stringify({
    id: 123,
    status: 1
  })
});
const data = await response.json();

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

{
  "success": true,
  "message": "",
  "data": {
    "id": 123,
    "name": "Updated Token",
    "status": 1
  }
}

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

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

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

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

Удалить токен

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

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

const response = await fetch('/api/token/123', {
  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": "Tokenне существует"
}

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

id (число): идентификатор токена, передаваемый по URL-пути.

Удаление токенов пакетно

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

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

const response = await fetch('/api/token/batch', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer your_user_token',
    'New-Api-User': 'your_user_id'
  },
  body: JSON.stringify({
    ids: [1, 2, 3, 4, 5]
  })
});
const data = await response.json();

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

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

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

{
  "success": false,
  "message": "Ошибка параметра"
}

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

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