Mô-đun quản lý mã thông báo
Mô tả tính năng
Tiền tố API thống nhất là http(s)://<your-domain>
Nên sử dụng HTTPS trong môi trường sản xuất để bảo mật mã thông báo xác thực. HTTP chỉ được khuyến nghị cho môi trường phát triển.
Một hệ thống quản lý hoàn chỉnh cho Mã thông báo API của người dùng. Hỗ trợ các tính năng như tạo Token, cập nhật, xóa và thao tác hàng loạt. Bao gồm các biện pháp kiểm soát chi tiết như hạn chế mô hình, hạn chế IP, quản lý hạn ngạch và thời gian hết hạn. Đây là nguồn dữ liệu cốt lõi cho trang Mã thông báo giao diện người dùng.
🔐 Xác thực người dùng
Nhận tất cả các token
- Tên giao diện: Nhận tất cả các token
- Phương thức HTTP: NHẬN
- Đường dẫn:
/api/token/ - Yêu cầu xác thực: Người dùng
- Mô tả chức năng: Phân trang và truy xuất danh sách tất cả các Token thuộc về người dùng hiện tại.
💡 Yêu cầu Ví dụ:
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();✅ Ví dụ phản hồi thành công:
{
"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
}
}❗ Ví dụ phản hồi không thành công:
{
"success": false,
"message": "Failed to retrieve Token list"
}🧾 Mô tả trường:
p(Number): Số trang, mặc định là 1size(Number): Số mục trên một trang, mặc định là 20items(Array): Danh sách thông tin tokentotal(Number): Tổng số Tokenpage(Number): Số trang hiện tạipage_size(Number): Số mục trên một trang
Mã thông báo tìm kiếm
- Tên giao diện: Mã thông báo tìm kiếm
- Phương thức HTTP: NHẬN
- Đường dẫn:
/api/token/search - Yêu cầu xác thực: Người dùng
- Mô tả chức năng: Tìm kiếm Token của người dùng dựa trên từ khóa và giá trị Token.
💡 Yêu cầu Ví dụ:
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();✅ Ví dụ phản hồi thành công:
{
"success": true,
"message": "",
"data": [
{
"id": 1,
"name": "API Token",
"key": "sk-your-token-placeholder",
"status": 1,
"remain_quota": 1000000
}
]
}❗ Ví dụ phản hồi không thành công:
{
"success": false,
"message": "Failed to search Token"
}🧾 Mô tả trường:
keyword(String): Tìm kiếm từ khóa, khớp với tên Tokentoken(String): Tìm kiếm giá trị token, hỗ trợ khớp từng phần
Nhận một mã thông báo
- Tên giao diện: Nhận một mã thông báo
- Phương thức HTTP: NHẬN
- Đường dẫn:
/api/token/:id - Yêu cầu xác thực: Người dùng
- Mô tả chức năng: Truy xuất thông tin chi tiết về Token được chỉ định.
💡 Yêu cầu Ví dụ:
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();✅ Ví dụ phản hồi thành công:
{
"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
}
}❗ Ví dụ phản hồi không thành công:
{
"success": false,
"message": "Token does not exist"
}🧾 Mô tả trường:
id (Số): ID mã thông báo, được truyền qua đường dẫn URL
Tạo mã thông báo
- Tên giao diện: Tạo Token
- Phương thức HTTP: POST
- Đường dẫn:
/api/token/ - Yêu cầu xác thực: Người dùng
- Mô tả chức năng: Tạo API Token mới, hỗ trợ tạo hàng loạt.
💡 Yêu cầu Ví dụ:
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();✅ Ví dụ phản hồi thành công:
{
"success": true,
"message": ""
}❗ Ví dụ phản hồi không thành công:
{
"success": false,
"message": "Token name is too long"
}🧾 Mô tả trường:
name(String): Tên token, độ dài tối đa 30 ký tựexpired_time(Number): Dấu thời gian hết hạn, -1 nghĩa là không bao giờ hết hạnremain_quota(Số): Hạn ngạch còn lạiunlimited_quota(Boolean): Cho dù hạn ngạch là không giới hạnmodel_limits_enabled(Boolean): Có bật giới hạn mô hình hay khôngmodel_limits(Array): Danh sách các model được phépallow_ips(String): Địa chỉ IP được phép, phân tách bằng dấu phẩygroup(String): Thuộc nhóm
Mã thông báo cập nhật
- Tên giao diện: Mã thông báo cập nhật
- Phương thức HTTP: PUT
- Đường dẫn:
/api/token/ - Yêu cầu xác thực: Người dùng
- Mô tả chức năng: Cập nhật cấu hình Token, hỗ trợ chuyển đổi trạng thái và cập nhật đầy đủ.
💡 Ví dụ về yêu cầu (Cập nhật đầy đủ):
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();💡 Ví dụ về yêu cầu (Chỉ cập nhật trạng thái):
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();✅ Ví dụ phản hồi thành công:
{
"success": true,
"message": "",
"data": {
"id": 123,
"name": "Updated Token",
"status": 1
}
}❗ Ví dụ phản hồi không thành công:
{
"success": false,
"message": "The token has expired and cannot be enabled. Please modify the token expiration time first, or set it to never expire"
}🧾 Mô tả trường:
id(Số): ID token, bắt buộcstatus_only(Tham số truy vấn): Có chỉ cập nhật trạng thái hay không- Các trường khác giống như giao diện Create Token, tất cả đều là tùy chọn
Xóa mã thông báo
- Tên giao diện: Xóa mã thông báo
- Phương thức HTTP: XÓA
- Đường dẫn:
/api/token/:id - Yêu cầu xác thực: Người dùng
- Mô tả chức năng: Xóa Token được chỉ định.
💡 Yêu cầu Ví dụ:
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();✅ Ví dụ phản hồi thành công:
{
"success": true,
"message": ""
}❗ Ví dụ phản hồi không thành công:
{
"success": false,
"message": "Token does not exist"
}🧾 Mô tả trường:
id (Số): ID mã thông báo, được truyền qua đường dẫn URL
Mã thông báo xóa hàng loạt
- Tên giao diện: Mã thông báo xóa hàng loạt
- Phương thức HTTP: POST
- Đường dẫn:
/api/token/batch - Yêu cầu xác thực: Người dùng
- Mô tả chức năng: Xóa nhiều Token trong một đợt.
💡 Yêu cầu Ví dụ:
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();✅ Ví dụ phản hồi thành công:
{
"success": true,
"message": "",
"data": 5
}❗ Ví dụ phản hồi không thành công:
{
"success": false,
"message": "Parameter error"
}🧾 Mô tả trường:
ids(Array): Danh sách Token ID cần xóa, bắt buộc và không được để trốngdata(Number): Số Token được xóa thành công