Mô-đun người dùng
Mô tả tính năng
Tiền tố API là https://88api.ai
Các giao diện liên quan đến tài khoản, bao gồm đăng ký/đăng nhập, hồ sơ cá nhân, quản lý mã thông báo, nạp tiền/thanh toán và hệ thống liên kết. Hỗ trợ 2FA, xác minh email và nhiều phương thức đăng nhập OAuth.
Đăng ký/Đăng nhập tài khoản
🔐 Không cần xác thực
Đăng ký tài khoản mới
- Tên giao diện:Đăng ký tài khoản mới
- Phương thức HTTP: POST
- Đường dẫn:
/api/user/register - Yêu cầu xác thực:Công khai
- Mô tả chức năng:Tạo tài khoản người dùng mới, hỗ trợ chức năng xác minh email và mã giới thiệu
💡 Ví dụ yêu cầu:
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();✅ Ví dụ phản hồi thành công:
{
"success": true,
"message": "User registration successful"
}❗ Ví dụ về phản hồi thất bại:
{
"success": false,
"message": "The administrator has closed new user registration"
}🧾 Mô tả trường:
username(String): Tên người dùng, bắt buộcpassword(Chuỗi): Mật khẩu, bắt buộcemail(String): Địa chỉ email, bắt buộc khi kích hoạt xác minh emailverification_code(String): Mã xác minh email, bắt buộc khi kích hoạt xác minh emailaff_code(String): Mã giới thiệu, tùy chọn
Đăng nhập người dùng
- Tên giao diện:Đăng nhập người dùng
- Phương thức HTTP: POST
- Đường dẫn:
/api/user/login - Yêu cầu xác thực:Công khai
- Mô tả chức năng:Đăng nhập tài khoản người dùng, hỗ trợ Xác thực hai yếu tố (2FA)
💡 Ví dụ yêu cầu:
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();✅ Ví dụ phản hồi thành công (Không có 2FA):
{
"success": true,
"message": "Login successful",
"data": {
"token": "user_access_token",
"user": {
"id": 1,
"username": "testuser",
"role": 1,
"quota": 1000000
}
}
}✅ Ví dụ phản hồi thành công (Yêu cầu 2FA):
{
"success": true,
"message": "Please enter the two-step verification code",
"data": {
"require_2fa": true
}
}❗ Ví dụ về phản hồi thất bại:
{
"success": false,
"message": "The administrator has turned off password login"
}🧾 Mô tả trường:
username(String): Tên người dùng, bắt buộcpassword(Chuỗi): Mật khẩu, bắt buộcrequire_2fa(Boolean): Có cần xác thực hai yếu tố hay không
Thông báo thanh toán Epay
- Tên giao diện:Thông báo thanh toán Epay
- Phương thức HTTP: NHẬN
- Đường dẫn:
/api/user/epay/notify - Yêu cầu xác thực:Công khai
- Mô tả chức năng:Xử lý thông báo gọi lại thanh toán từ hệ thống Epay
💡 Ví dụ yêu cầu:
_// Usually called back automatically by the payment system,The front end does not need to actively call _
_// ExampleURL: /api/user/epay/notify?trade_no=USR1NO123456&money=10.00&trade_status=TRADE_SUCCESS_✅ Ví dụ phản hồi thành công:
{
"success": true,
"message": "Payment successful"
}❗ Ví dụ về phản hồi thất bại:
{
"success": false,
"message": "The order does not exist or has been processed"
}🧾 Mô tả trường:
trade_no(String): Mã lệnh giao dịchmoney(String): Số tiền thanh toántrade_status(String): Trạng thái giao dịchsign(String): Xác thực chữ ký
Liệt kê tất cả các nhóm (Phiên bản chưa được xác thực)
- Tên giao diện:Liệt kê tất cả các nhóm
- Phương thức HTTP: NHẬN
- Đường dẫn:
/api/user/groups - Yêu cầu xác thực:Công khai
- Mô tả chức năng:Lấy thông tin về tất cả các nhóm người dùng trong hệ thống, có thể truy cập mà không cần đăng nhập
💡 Ví dụ yêu cầu:
const response = await fetch('/api/user/groups', {
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
});
const data = await response.json();✅ Ví dụ phản hồi thành công:
{
"success": true,
"message": "",
"data": {
"default": {
"ratio": 1.0,
"desc": "Default grouping"
},
"vip": {
"ratio": 0.8,
"desc": "VIPGroup"
},
"auto": {
"ratio": "automatic",
"desc": "Automatically select the best grouping"
}
}
}❗ Ví dụ về phản hồi thất bại:
{
"success": false,
"message": "Failed to obtain group information"
}🧾 Mô tả trường:
data (Object): Ánh xạ thông tin nhóm
- Key (String): Tên nhóm
ratio(Số/Chuỗi): Tỷ lệ nhóm, “tự động” (auto) nghĩa là chọn tự độngdesc(String): Mô tả nhóm
🔐 Yêu cầu xác thực người dùng
Đăng xuất
- Tên giao diện:Đăng xuất
- Phương thức HTTP: NHẬN
- Đường dẫn:
/api/user/logout - Yêu cầu xác thực:Người dùng
- Mô tả chức năng:Xóa phiên người dùng và đăng xuất
💡 Ví dụ yêu cầu:
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();✅ Ví dụ phản hồi thành công:
{
"success": true,
"message": ""
}❗ Ví dụ về phản hồi thất bại:
{
"success": false,
"message": "Session clear failed"
}🧾 Mô tả trường:
Không có tham số yêu cầu
Hoạt động tự phục vụ của người dùng
🔐 Yêu cầu xác thực người dùng
Nhận nhóm của người dùng hiện tại
- Tên giao diện:Lấy nhóm người dùng hiện tại
- Phương thức HTTP: NHẬN
- Đường dẫn:
/api/user/self/groups - Yêu cầu xác thực:Người dùng
- Mô tả chức năng:Truy xuất thông tin nhóm có sẵn cho người dùng hiện đang đăng nhập, bao gồm Tỷ lệ nhóm và mô tả
💡 Ví dụ yêu cầu:
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();✅ Ví dụ phản hồi thành công:
{
"success": true,
"message": "",
"data": {
"default": {
"ratio": 1.0,
"desc": "Default grouping"
},
"vip": {
"ratio": 0.8,
"desc": "VIPGroup"
},
"auto": {
"ratio": "automatic",
"desc": "Automatically select the best grouping"
}
}
}❗ Ví dụ về phản hồi thất bại:
{
"success": false,
"message": "Failed to obtain group information"
}🧾 Mô tả trường:
data (Object): Nhóm ánh xạ thông tin nhóm có sẵn của người dùng.go:25-48
- Key (String): Tên nhóm
ratio(Number/String): Tỷ lệ nhóm, “tự động” (auto) nghĩa là tự động chọn nhóm tối ưudesc(String): Mô tả nhóm
Nhận hồ sơ cá nhân
- Tên giao diện:Nhận hồ sơ cá nhân
- Phương thức HTTP: NHẬN
- Đường dẫn:
/api/user/self - 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 của người dùng hiện tại, bao gồm quyền, hạn ngạch, cài đặt, v.v.
💡 Ví dụ yêu cầu:
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();✅ Ví dụ phản hồi thành công:
{
"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
}
}
}❗ Ví dụ về phản hồi thất bại:
{
"success": false,
"message": "Failed to obtain user information"
}🧾 Mô tả trường:
id(Số): ID người dùngusername(Chuỗi): Tên người dùngdisplay_name(String): Tên hiển thịrole(Số): Vai trò người dùng, 1=Người dùng bình thường, 10=Quản trị viên, 100=Người dùng rootstatus(Số): Trạng thái người dùng, 1=Bình thường, 2=Đã tắtemail(Chuỗi): Địa chỉ emailgroup(String): Nhóm được chỉ địnhquota(Số): Tổng hạn ngạchused_quota(Số): Hạn mức sử dụngrequest_count(Số): Số lượng yêu cầuaff_code(Chuỗi): Mã liên kếtaff_count(Số): Số lượng liên kếtaff_quota(Số): Hạn ngạch phần thưởng liên kếtaff_history_quota(Số): Hạn ngạch liên kết lịch sửinviter_id(Số): ID người mờilinux_do_id(Chuỗi): ID tài khoản LinuxDosetting(String): Chuỗi JSON cài đặt người dùngstripe_customer(Chuỗi): ID khách hàng sọcsidebar_modules(String): Chuỗi JSON cấu hình mô-đun thanh bênpermissions(Object): Thông tin quyền của người dùng
Nhận khả năng hiển thị mô hình
- Tên giao diện:Nhận khả năng hiển thị mô hình
- Phương thức HTTP: NHẬN
- Đường dẫn:
/api/user/models - Yêu cầu xác thực:Người dùng
- Mô tả chức năng:Truy xuất danh sách các mô hình AI mà người dùng hiện tại có thể truy cập
💡 Ví dụ yêu cầu:
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();✅ Ví dụ phản hồi thành công:
{
"success": true,
"message": "",
"data": [
"gpt-3.5-turbo",
"gpt-4",
"claude-3-sonnet",
"claude-3-haiku"
]
}❗ Ví dụ về phản hồi thất bại:
{
"success": false,
"message": "Failed to get model list"
}🧾 Mô tả trường:
data (Array): Danh sách tên model mà người dùng có thể truy cập
Sửa đổi hồ sơ cá nhân
- Tên giao diện:Sửa đổi hồ sơ cá nhân
- Phương thức HTTP: PUT
- Đường dẫn:
/api/user/self - Yêu cầu xác thực:Người dùng
- Mô tả chức năng:Cập nhật thông tin cá nhân của người dùng hoặc cài đặt thanh bên
💡 Ví dụ yêu cầu (Cập nhật thông tin cá nhân):
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();💡 Ví dụ về yêu cầu (Cập nhật cài đặt thanh bên):
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();✅ Ví dụ phản hồi thành công:
{
"success": true,
"message": "Update successful"
}❗ Ví dụ về phản hồi thất bại:
{
"success": false,
"message": "Input is illegal"
}🧾 Mô tả trường:
display_name(String): Tên hiển thị, tùy chọnemail(String): Địa chỉ email, tùy chọnpassword(String): Mật khẩu mới, tùy chọnsidebar_modules(String): Chuỗi JSON cấu hình mô-đun thanh bên, tùy chọn
Xóa tài khoản
- Tên giao diện:Xóa tài khoản
- Phương thức HTTP: XÓA
- Đường dẫn:
/api/user/self - Yêu cầu xác thực:Người dùng
- Mô tả chức năng:Xóa tài khoản người dùng hiện tại. Người dùng root không thể bị xóa
💡 Ví dụ yêu cầu:
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();✅ Ví dụ phản hồi thành công:
{
"success": true,
"message": ""
}❗ Ví dụ về phản hồi thất bại:
{
"success": false,
"message": "Cannot delete super administrator account"
}🧾 Mô tả trường:
Không có tham số yêu cầu
Tạo mã thông báo truy cập cấp người dùng
- Tên giao diện:Tạo mã thông báo truy cập cấp người dùng
- Phương thức HTTP: NHẬN
- Đường dẫn:
/api/user/token - Yêu cầu xác thực:Người dùng
- Mô tả chức năng:Tạo mã thông báo truy cập mới cho người dùng hiện tại, được sử dụng cho lệnh gọi API
💡 Ví dụ yêu cầu:
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();✅ Ví dụ phản hồi thành công:
{
"success": true,
"message": "",
"data": "`<YOUR_API_KEY>`"
}❗ Ví dụ về phản hồi thất bại:
{
"success": false,
"message": "Failed to generate token"
}🧾 Mô tả trường:
data (String): Mã thông báo truy cập được tạo
Nhận thông tin mã liên kết
- Tên giao diện:Nhận thông tin mã liên kết
- Phương thức HTTP: NHẬN
- Đường dẫn:
/api/user/aff - Yêu cầu xác thực:Người dùng
- Mô tả chức năng:Truy xuất hoặc tạo mã liên kết của người dùng, được sử dụng để mời người dùng mới đăng ký
💡 Ví dụ yêu cầu:
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();✅ Ví dụ phản hồi thành công:
{
"success": true,
"message": "",
"data": "ABC123"
}❗ Ví dụ về phản hồi thất bại:
{
"success": false,
"message": "Failed to obtain promotion code"
}🧾 Mô tả trường:
data (Chuỗi): Mã liên kết của người dùng. Nếu nó không tồn tại, một chuỗi ngẫu nhiên gồm 4 ký tự sẽ được tạo tự động
Nạp hạn ngạch trực tiếp
- Tên giao diện:Nạp tiền theo hạn mức trực tiếp
- Phương thức HTTP: POST
- Đường dẫn:
/api/user/topup - Yêu cầu xác thực:Người dùng
- Mô tả chức năng:Sử dụng mã đổi thưởng để nạp Hạn ngạch tài khoản
💡 Ví dụ yêu cầu:
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();✅ Ví dụ phản hồi thành công:
{
"success": true,
"message": "Redemption successful",
"data": 100000
}❗ Ví dụ về phản hồi thất bại:
{
"success": false,
"message": "The redemption code is invalid or has been used"
}🧾 Mô tả trường:
key(String): Mã đổi quà, bắt buộcdata(Số): Trả về số lượng Quota được quy đổi khi thành công
Gửi lệnh thanh toán
- Tên giao diện:Gửi lệnh thanh toán
- Phương thức HTTP: POST
- Đường dẫn:
/api/user/pay - Yêu cầu xác thực:Người dùng
- Mô tả chức năng:Tạo lệnh thanh toán trực tuyến, hỗ trợ nhiều phương thức thanh toán
💡 Ví dụ yêu cầu:
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();✅ Ví dụ phản hồi thành công:
{
"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"
}❗ Ví dụ về phản hồi thất bại:
{
"success": false,
"message": "The recharge amount cannot be less than 1000"
}🧾 Mô tả trường:
amount(Số): Số tiền nạp vào, phải lớn hơn hoặc bằng Hạn ngạch nạp tiền tối thiểu topup.go:133-136payment_method(String): Phương thức thanh toán, chẳng hạn như “alipay”, “wxpay”, v.v.top_up_code(String): Mã nạp tiền, tùy chọndata(Đối tượng): Tham số hình thức thanh toánurl(String): URL gửi thanh toán
Tính số tiền thanh toán
- Tên giao diện:Tính toán số tiền thanh toán
- Phương thức HTTP: POST
- Đường dẫn:
/api/user/amount - Yêu cầu xác thực:Người dùng
- Mô tả chức năng:Tính toán số tiền thanh toán thực tế tương ứng với Hạn ngạch nạp tiền được chỉ định
💡 Ví dụ yêu cầu:
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();✅ Ví dụ phản hồi thành công:
{
"success": true,
"message": "success",
"data": "10.00"
}❗ Ví dụ về phản hồi thất bại:
{
"success": false,
"message": "The recharge amount cannot be less than 1000"
}🧾 Mô tả trường:
amount(Số): Số tiền nạp vào, phải lớn hơn hoặc bằng Hạn mức nạp tối thiểutop_up_code(String): Mã nạp tiền, tùy chọndata(String): Số tiền thực tế cần thanh toán (Yuan)
Chuyển hạn ngạch liên kết
- Tên giao diện:Chuyển hạn ngạch liên kết
- Phương thức HTTP: POST
- Đường dẫn:
/api/user/aff_transfer - Yêu cầu xác thực:Người dùng
- Mô tả chức năng:Chuyển đổi Hạn ngạch phần thưởng liên kết thành Hạn ngạch có thể sử dụng được
💡 Ví dụ yêu cầu:
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();✅ Ví dụ phản hồi thành công:
{
"success": true,
"message": "Transfer successful"
}❗ Ví dụ về phản hồi thất bại:
{
"success": false,
"message": "Insufficient invitation quota!"
}🧾 Mô tả trường:
quota (Number): Số lượng Quota cần chuyển đổi, phải lớn hơn hoặc bằng đơn vị Quota tối thiểu
Cập nhật cài đặt người dùng
- Tên giao diện:Cập nhật cài đặt người dùng
- Phương thức HTTP: PUT
- Đường dẫn:
/api/user/setting - 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 cài đặt cá nhân của người dùng
💡 Ví dụ yêu cầu:
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();✅ Ví dụ phản hồi thành công:
{
"success": true,
"message": "Settings updated successfully"
}❗ Ví dụ về phản hồi thất bại:
{
"success": false,
"message": "Setting format error"
}🧾 Mô tả trường:
- Nội dung yêu cầu có thể chứa bất kỳ trường cài đặt người dùng nào, được gửi ở định dạng JSON
- Các trường cụ thể tùy thuộc vào yêu cầu của trang cài đặt giao diện người dùng
Quản trị viên Quản lý người dùng
🔐 Yêu cầu xác thực của quản trị viên
Lấy tất cả danh sách người dùng
- Tên giao diện:Lấy tất cả danh sách người dùng
- Phương thức HTTP: NHẬN
- Đường dẫn:
/api/user/ - Yêu cầu xác thực:Quản trị viên
- Mô tả chức năng:Phân trang và truy xuất thông tin danh sách của tất cả người dùng trong hệ thống
💡 Ví dụ yêu cầu:
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();✅ Ví dụ phản hồi thành công:
{
"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
}
}❗ Ví dụ về phản hồi thất bại:
{
"success": false,
"message": "Failed to get user list"
}🧾 Mô tả trường:
p(Number): Số trang, mặc định là 1page_size(Number): Mục trên mỗi trang, mặc định là 20items(Array): Danh sách thông tin người dùngtotal(Số): Tổng số người dùngpage(Number): Số trang hiện tạipage_size(Số): Mục trên mỗi trang
Tìm kiếm người dùng
- Tên giao diện:Tìm kiếm người dùng
- Phương thức HTTP: NHẬN
- Đường dẫn:
/api/user/search - Yêu cầu xác thực:Quản trị viên
- Mô tả chức năng:Tìm kiếm người dùng dựa trên từ khóa và Nhóm
💡 Ví dụ yêu cầu:
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();✅ Ví dụ phản hồi thành công:
{
"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
}
}❗ Ví dụ về phản hồi thất bại:
{
"success": false,
"message": "Search user failed"
}🧾 Mô tả trường:
keyword(String): Từ khóa tìm kiếm, có thể khớp với tên người dùng, tên hiển thị hoặc emailgroup(String): Điều kiện lọc Nhóm người dùngp(Number): Số trang, mặc định là 1page_size(Number): Mục trên mỗi trang, mặc định là 20
Nhận thông tin người dùng
- Tên giao diện:Nhận thông tin người dùng
- Phương thức HTTP: NHẬN
- Đường dẫn:
/api/user/:id - Yêu cầu xác thực:Quản trị viên
- Mô tả chức năng:Truy xuất thông tin chi tiết cho một người dùng được chỉ định, bao gồm cả kiểm tra quyền
💡 Ví dụ yêu cầu:
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();✅ Ví dụ phản hồi thành công:
{
"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
}
}❗ Ví dụ về phản hồi thất bại:
{
"success": false,
"message": "Do not have the right to obtain information about users of the same level or higher"
}🧾 Mô tả trường:
id(Number): ID người dùng, được truyền qua đường dẫn URL- Trả về thông tin người dùng đầy đủ nhưng quản trị viên không thể xem thông tin của người dùng có cùng cấp quyền trở lên
Tạo người dùng
- Tên giao diện:Tạo người dùng
- Phương thức HTTP: POST
- Đường dẫn:
/api/user/ - Yêu cầu xác thực:Quản trị viên
- Mô tả chức năng:Tạo tài khoản người dùng mới. Quản trị viên không thể tạo người dùng có quyền lớn hơn hoặc bằng quyền của họ
💡 Ví dụ yêu cầu:
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();✅ Ví dụ phản hồi thành công:
{
"success": true,
"message": ""
}❗ Ví dụ về phản hồi thất bại:
{
"success": false,
"message": "Unable to create a user with permissions greater than or equal to your own"
}🧾 Mô tả trường:
username(String): Tên người dùng, bắt buộcpassword(Chuỗi): Mật khẩu, bắt buộcdisplay_name(String): Tên hiển thị, tùy chọn, mặc định là tên người dùngrole(Số): Vai trò người dùng, phải nhỏ hơn vai trò quản trị viên hiện tại
Hoạt động quản lý (Tắt/Đặt lại, v.v.)
- Tên giao diện:Hoạt động quản lý (Tắt/Đặt lại, v.v.)
- Phương thức HTTP: POST
- Đường dẫn:
/api/user/manage - Yêu cầu xác thực:Quản trị viên
- Mô tả chức năng:Thực hiện các hoạt động quản lý đối với người dùng, bao gồm bật, tắt, xóa, thăng cấp và hạ cấp
💡 Ví dụ yêu cầu:
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();✅ Ví dụ phản hồi thành công:
{
"success": true,
"message": ""
}❗ Ví dụ về phản hồi thất bại:
{
"success": false,
"message": "Unable to disable super admin user"
}🧾 Mô tả trường:
id(Số): ID người dùng mục tiêu, bắt buộcaction(String): Kiểu thao tác, bắt buộc, giá trị tùy chọn:disable: Vô hiệu hóa người dùngenable: Cho phép người dùngdelete: Xóa người dùngpromote: Thăng cấp lên Admin (Chỉ dành cho người dùng Root)demote: Hạ cấp xuống người dùng thông thường
Cập nhật người dùng
- Tên giao diện:Cập nhật người dùng
- Phương thức HTTP: PUT
- Đường dẫn:
/api/user/ - Yêu cầu xác thực:Quản trị viên
- Mô tả chức năng:Cập nhật thông tin người dùng, bao gồm kiểm tra quyền và ghi nhật ký thay đổi hạn mức
💡 Ví dụ yêu cầu:
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();✅ Ví dụ phản hồi thành công:
{
"success": true,
"message": ""
}❗ Ví dụ về phản hồi thất bại:
{
"success": false,
"message": "Do not have the right to update user information with the same or higher permission level"
}🧾 Mô tả trường:
id(Số): ID người dùng, bắt buộcusername(String): Tên người dùng, tùy chọndisplay_name(String): Tên hiển thị, tùy chọnemail(String): Địa chỉ email, tùy chọnpassword(String): Mật khẩu mới, tùy chọn. Nếu trống, mật khẩu không được cập nhậtquota(Số): Hạn ngạch người dùng, tùy chọnrole(Number): Vai trò người dùng, không thể lớn hơn hoặc bằng vai trò quản trị viên hiện tạistatus(Số): Trạng thái người dùng, tùy chọn
Xóa người dùng
- Tên giao diện:Xóa người dùng
- Phương thức HTTP: XÓA
- Đường dẫn:
/api/user/:id - Yêu cầu xác thực:Quản trị viên
- Mô tả chức năng:Xóa cứng người dùng được chỉ định. Quản trị viên không thể xóa người dùng có cùng cấp quyền hoặc cao hơn
💡 Ví dụ yêu cầu:
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();✅ Ví dụ phản hồi thành công:
{
"success": true,
"message": ""
}❗ Ví dụ về phản hồi thất bại:
{
"success": false,
"message": "Do not have permission to delete users with the same permission level or higher"
}🧾 Mô tả trường:
id(Number): ID người dùng, được truyền qua đường dẫn URL- Thực hiện thao tác xóa cứng, không thể đảo ngược