Модуль управления токенами
Описание функции
Префикс интерфейса унифицирован как 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(число): количество успешно удаленных токенов.