Hồ sơ và bảo mật
MarkdownPhương thức, trường yêu cầu và phản hồi.
Hướng dẫn đầy đủ
Phần này có 6 phương thức. Mở phương thức để xem điều kiện truy cập, trường yêu cầu và phản hồi.
| Phương thức và đường dẫn | Mô tả | Quyền truy cập |
|---|---|---|
PUT /api/v1/user | Thay đổi hồ sơ | Token trang quản lý tài khoản |
GET /api/v1/user/passkeys | Danh sách passkey | Token trang quản lý tài khoản |
PUT /api/v1/user/password | Đổi mật khẩu | Token trang quản lý tài khoản |
GET /api/v1/user/profile | Hồ sơ, số dư và các liên kết | Token trang quản lý tài khoản |
GET /api/v1/user/totp/status | Trạng thái 2FA (TOTP) | Token trang quản lý tài khoản |
GET /api/v1/user/totp/verification-method | Phương thức kiểm tra TOTP | Token trang quản lý tài khoản |
PUT /api/v1/user — Thay đổi hồ sơ
Quyền truy cập: Token trang quản lý tài khoản
/api/v1/userCác trường JSON / biểu mẫu
| Trường | Kiểu | Bắt buộc | Kiểm tra / mô tả |
|---|---|---|---|
username | string | không | ; có thể là null |
avatar_url | string | không | ; có thể là null |
balance_notify_enabled | boolean | không | ; có thể là null |
balance_notify_threshold | number | không | ; có thể là null |
{
"username": "PLACEHOLDER_USERNAME (string)",
"avatar_url": "PLACEHOLDER_AVATAR_URL (string)",
"balance_notify_enabled": "PLACEHOLDER_BALANCE_NOTIFY_ENABLED (boolean)",
"balance_notify_threshold": "PLACEHOLDER_BALANCE_NOTIFY_THRESHOLD (number)"
}PLACEHOLDER biểu thị dữ liệu bạn nhập và kiểu dữ liệu đó. Thay các giá trị và chỉ giữ những trường tùy chọn cần thiết; không gửi chuỗi đánh dấu thay cho số, boolean, đối tượng hoặc mảng.
Lược đồ yêu cầu: UpdateProfileRequest
Phản hồi
Phản hồi JSON chứa code, message và data. Nội dung data được mô tả trong các lược đồ bên dưới.
Lược đồ dữ liệu phản hồi: User, UserProfileResponse. Các trường và kiểu dữ liệu nằm trên trang “Lược đồ dữ liệu”.
{
"code": 0,
"message": "success",
"data": {
"id": "PLACEHOLDER_ID (integer)",
"email": "PLACEHOLDER_EMAIL (string)",
"username": "PLACEHOLDER_USERNAME (string)",
"role": "PLACEHOLDER_ROLE (string)",
"balance": "PLACEHOLDER_BALANCE (number)",
"frozen_balance": "PLACEHOLDER_FROZEN_BALANCE (number)",
"concurrency": "PLACEHOLDER_CONCURRENCY (integer)",
"status": "PLACEHOLDER_STATUS (string)",
"last_active_at": "PLACEHOLDER_LAST_ACTIVE_AT (string)",
"created_at": "PLACEHOLDER_CREATED_AT (string)",
"updated_at": "PLACEHOLDER_UPDATED_AT (string)",
"deleted_at": "PLACEHOLDER_DELETED_AT (string)",
"balance_notify_enabled": "PLACEHOLDER_BALANCE_NOTIFY_ENABLED (boolean)",
"balance_notify_threshold_type": "PLACEHOLDER_BALANCE_NOTIFY_THRESHOLD_TYPE (string)",
"balance_notify_threshold": "PLACEHOLDER_BALANCE_NOTIFY_THRESHOLD (number)",
"balance_notify_extra_emails": "PLACEHOLDER_BALANCE_NOTIFY_EXTRA_EMAILS (array)",
"total_recharged": "PLACEHOLDER_TOTAL_RECHARGED (number)",
"rpm_limit": "PLACEHOLDER_RPM_LIMIT (integer)",
"api_keys": "PLACEHOLDER_API_KEYS (array)",
"avatar_url": "PLACEHOLDER_AVATAR_URL (string)",
"email_bound": "PLACEHOLDER_EMAIL_BOUND (boolean)"
}
}Đặc điểm: Mọi dữ liệu cá nhân và đối tượng đều được giới hạn theo chủ thể JWT.
Đặc điểm: Thao tác thay đổi trạng thái hoặc tiếp tục quy trình ủy quyền dùng một lần; ví dụ mô tả hợp đồng và không được thực thi.
Đặc điểm: Giới hạn chi tiêu của khóa (quota, quota_used) nằm trong phản hồi về khóa, không nằm trong hồ sơ. frozen_balance là số tiền đã giữ trước, không thể coi là số dư khả dụng.
GET /api/v1/user/passkeys — Danh sách passkey
Quyền truy cập: Token trang quản lý tài khoản
/api/v1/user/passkeyscurl --fail-with-body "https://ailoot.ai/api/v1/user/passkeys" \
-H "Authorization: Bearer $TOKEN"Không cần nội dung yêu cầu. Gửi các tham số nêu trên trong URL.
Phản hồi
Phản hồi JSON chứa code, message và data. Nội dung data được mô tả trong các lược đồ bên dưới.
Lược đồ dữ liệu phản hồi: PasskeyCredentialSummary. Các trường và kiểu dữ liệu nằm trên trang “Lược đồ dữ liệu”.
{
"code": 0,
"message": "success",
"data": {
"id": "PLACEHOLDER_ID (integer)",
"name": "PLACEHOLDER_NAME (string)",
"created_at": "PLACEHOLDER_CREATED_AT (string)",
"last_used_at": "PLACEHOLDER_LAST_USED_AT (string)",
"backup": "PLACEHOLDER_BACKUP (boolean)"
}
}Đặc điểm: Mọi dữ liệu cá nhân và đối tượng đều được giới hạn theo chủ thể JWT.
Đặc điểm: credential được lấy từ navigator.credentials; session_token từ begin. Nội dung Finish <=65536 byte; đăng ký và xóa cần mật khẩu.
PUT /api/v1/user/password — Đổi mật khẩu
Quyền truy cập: Token trang quản lý tài khoản
/api/v1/user/passwordCác trường JSON / biểu mẫu
| Trường | Kiểu | Bắt buộc | Kiểm tra / mô tả |
|---|---|---|---|
old_password | string | có | required |
new_password | string | có | required,min=6 |
{
"old_password": "PLACEHOLDER_OLD_PASSWORD (string)",
"new_password": "PLACEHOLDER_NEW_PASSWORD (string)"
}PLACEHOLDER biểu thị dữ liệu bạn nhập và kiểu dữ liệu đó. Thay các giá trị và chỉ giữ những trường tùy chọn cần thiết; không gửi chuỗi đánh dấu thay cho số, boolean, đối tượng hoặc mảng.
Lược đồ yêu cầu: ChangePasswordRequest
Phản hồi
Phản hồi JSON chứa code, message và data. Nội dung data được mô tả trong các lược đồ bên dưới.
{
"code": 0,
"message": "success",
"data": {
"message": "VALUE_FROM_RESPONSE"
}
}Đặc điểm: Mọi dữ liệu cá nhân và đối tượng đều được giới hạn theo chủ thể JWT.
Đặc điểm: Thao tác thay đổi trạng thái hoặc tiếp tục quy trình ủy quyền dùng một lần; ví dụ mô tả hợp đồng và không được thực thi.
GET /api/v1/user/profile — Hồ sơ, số dư và các liên kết
Quyền truy cập: Token trang quản lý tài khoản
/api/v1/user/profilecurl --fail-with-body "https://ailoot.ai/api/v1/user/profile" \
-H "Authorization: Bearer $TOKEN"Không cần nội dung yêu cầu. Gửi các tham số nêu trên trong URL.
Phản hồi
Phản hồi JSON chứa code, message và data. Nội dung data được mô tả trong các lược đồ bên dưới.
Lược đồ dữ liệu phản hồi: User, UserProfileResponse. Các trường và kiểu dữ liệu nằm trên trang “Lược đồ dữ liệu”.
{
"code": 0,
"message": "success",
"data": {
"id": "PLACEHOLDER_ID (integer)",
"email": "PLACEHOLDER_EMAIL (string)",
"username": "PLACEHOLDER_USERNAME (string)",
"role": "PLACEHOLDER_ROLE (string)",
"balance": "PLACEHOLDER_BALANCE (number)",
"frozen_balance": "PLACEHOLDER_FROZEN_BALANCE (number)",
"concurrency": "PLACEHOLDER_CONCURRENCY (integer)",
"status": "PLACEHOLDER_STATUS (string)",
"last_active_at": "PLACEHOLDER_LAST_ACTIVE_AT (string)",
"created_at": "PLACEHOLDER_CREATED_AT (string)",
"updated_at": "PLACEHOLDER_UPDATED_AT (string)",
"deleted_at": "PLACEHOLDER_DELETED_AT (string)",
"balance_notify_enabled": "PLACEHOLDER_BALANCE_NOTIFY_ENABLED (boolean)",
"balance_notify_threshold_type": "PLACEHOLDER_BALANCE_NOTIFY_THRESHOLD_TYPE (string)",
"balance_notify_threshold": "PLACEHOLDER_BALANCE_NOTIFY_THRESHOLD (number)",
"balance_notify_extra_emails": "PLACEHOLDER_BALANCE_NOTIFY_EXTRA_EMAILS (array)",
"total_recharged": "PLACEHOLDER_TOTAL_RECHARGED (number)",
"rpm_limit": "PLACEHOLDER_RPM_LIMIT (integer)",
"api_keys": "PLACEHOLDER_API_KEYS (array)",
"avatar_url": "PLACEHOLDER_AVATAR_URL (string)",
"email_bound": "PLACEHOLDER_EMAIL_BOUND (boolean)"
}
}Đặc điểm: Mọi dữ liệu cá nhân và đối tượng đều được giới hạn theo chủ thể JWT.
Đặc điểm: Giới hạn chi tiêu của khóa (quota, quota_used) nằm trong phản hồi về khóa, không nằm trong hồ sơ. frozen_balance là số tiền đã giữ trước, không thể coi là số dư khả dụng.
GET /api/v1/user/totp/status — Trạng thái 2FA (TOTP)
Quyền truy cập: Token trang quản lý tài khoản
/api/v1/user/totp/statuscurl --fail-with-body "https://ailoot.ai/api/v1/user/totp/status" \
-H "Authorization: Bearer $TOKEN"Không cần nội dung yêu cầu. Gửi các tham số nêu trên trong URL.
Phản hồi
Phản hồi JSON chứa code, message và data. Nội dung data được mô tả trong các lược đồ bên dưới.
Lược đồ dữ liệu phản hồi: TotpStatusResponse. Các trường và kiểu dữ liệu nằm trên trang “Lược đồ dữ liệu”.
{
"code": 0,
"message": "success",
"data": {
"enabled": "PLACEHOLDER_ENABLED (boolean)",
"enabled_at": "PLACEHOLDER_ENABLED_AT (integer)",
"feature_enabled": "PLACEHOLDER_FEATURE_ENABLED (boolean)"
}
}Đặc điểm: Mọi dữ liệu cá nhân và đối tượng đều được giới hạn theo chủ thể JWT.
Đặc điểm: secret và setup_token là bí mật; việc kiểm tra phụ thuộc vào cài đặt TOTP và người dùng.
GET /api/v1/user/totp/verification-method — Phương thức kiểm tra TOTP
Quyền truy cập: Token trang quản lý tài khoản
/api/v1/user/totp/verification-methodcurl --fail-with-body "https://ailoot.ai/api/v1/user/totp/verification-method" \
-H "Authorization: Bearer $TOKEN"Không cần nội dung yêu cầu. Gửi các tham số nêu trên trong URL.
Phản hồi
Phản hồi JSON chứa code, message và data. Nội dung data được mô tả trong các lược đồ bên dưới.
{
"code": 0,
"message": "success",
"data": {
"method": "email"
}
}Đặc điểm: Mọi dữ liệu cá nhân và đối tượng đều được giới hạn theo chủ thể JWT.
Đặc điểm: secret và setup_token là bí mật; việc kiểm tra phụ thuộc vào cài đặt TOTP và người dùng.
TotpVerificationMethod
{
"type": "object",
"required": [
"method"
],
"properties": {
"method": {
"type": "string",
"enum": [
"email",
"password"
]
}
}
}