Đăng nhập và phiên
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ó 14 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 |
|---|---|---|
POST /api/v1/auth/forgot-password | Yêu cầu đặt lại mật khẩu | Không cần đăng nhập; điều kiện bổ sung được ghi ở phương thức |
POST /api/v1/auth/login | Đăng nhập bằng email và mật khẩu | Không cần đăng nhập; điều kiện bổ sung được ghi ở phương thức |
POST /api/v1/auth/login/2fa | Hoàn tất đăng nhập bằng TOTP | Không cần đăng nhập; điều kiện bổ sung được ghi ở phương thức |
POST /api/v1/auth/logout | Đăng xuất và thu hồi refresh token | Không cần đăng nhập; điều kiện bổ sung được ghi ở phương thức |
GET /api/v1/auth/me | Người dùng hiện tại, số dư và giới hạn | Token trang quản lý tài khoản |
POST /api/v1/auth/passkey/login/begin | Bắt đầu đăng nhập bằng passkey | Không cần đăng nhập; điều kiện bổ sung được ghi ở phương thức |
POST /api/v1/auth/passkey/login/finish | Hoàn tất đăng nhập bằng passkey | Không cần đăng nhập; điều kiện bổ sung được ghi ở phương thức |
POST /api/v1/auth/refresh | Làm mới token | Không cần đăng nhập; điều kiện bổ sung được ghi ở phương thức |
POST /api/v1/auth/register | Đăng ký | Không cần đăng nhập; điều kiện bổ sung được ghi ở phương thức |
POST /api/v1/auth/reset-password | Đặt lại mật khẩu | Không cần đăng nhập; điều kiện bổ sung được ghi ở phương thức |
POST /api/v1/auth/revoke-all-sessions | Thu hồi tất cả phiên | Token trang quản lý tài khoản |
POST /api/v1/auth/send-verify-code | Gửi mã xác nhận | Không cần đăng nhập; điều kiện bổ sung được ghi ở phương thức |
POST /api/v1/auth/validate-invitation-code | Kiểm tra lời mời | Không cần đăng nhập; điều kiện bổ sung được ghi ở phương thức |
POST /api/v1/auth/validate-promo-code | Kiểm tra mã khuyến mại | Không cần đăng nhập; điều kiện bổ sung được ghi ở phương thức |
POST /api/v1/auth/forgot-password — Yêu cầu đặt lại mật khẩu
Quyền truy cập: Không cần đăng nhập; điều kiện bổ sung được ghi ở phương thức
Giới hạn tần suất: 5 yêu cầu trong 60 giây từ một địa chỉ.
/api/v1/auth/forgot-passwordCác trường JSON / biểu mẫu
| Trường | Kiểu | Bắt buộc | Kiểm tra / mô tả |
|---|---|---|---|
email | string | có | required,email |
turnstile_token | string | không |
{
"email": "PLACEHOLDER_EMAIL (string)",
"turnstile_token": "PLACEHOLDER_TURNSTILE_TOKEN (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: ForgotPasswordRequest
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: ForgotPasswordResponse. 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": {
"message": "PLACEHOLDER_MESSAGE (string)"
}
}Đặ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.
POST /api/v1/auth/login — Đăng nhập bằng email và mật khẩu
Quyền truy cập: Không cần đăng nhập; điều kiện bổ sung được ghi ở phương thức
Tính khả dụng của chức năng và các điều kiện truy cập bổ sung được kiểm tra khi thực hiện yêu cầu.
Giới hạn tần suất: 20 yêu cầu trong 60 giây từ một địa chỉ.
/api/v1/auth/loginCác trường JSON / biểu mẫu
| Trường | Kiểu | Bắt buộc | Kiểm tra / mô tả |
|---|---|---|---|
email | string | có | required,email |
password | string | có | required |
turnstile_token | string | không |
{
"email": "PLACEHOLDER_EMAIL (string)",
"password": "PLACEHOLDER_PASSWORD (string)",
"turnstile_token": "PLACEHOLDER_TURNSTILE_TOKEN (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: LoginRequest
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: TotpLoginResponse, User, AuthResponse. Các trường và kiểu dữ liệu nằm trên trang “Lược đồ dữ liệu”.
Nếu có nhiều biến thể phản hồi, các trường của chúng được liệt kê trong các lược đồ riêng; không nên gộp chúng thành một đối tượng.
Đặ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.
POST /api/v1/auth/login/2fa — Hoàn tất đăng nhập bằng TOTP
Quyền truy cập: Không cần đăng nhập; điều kiện bổ sung được ghi ở phương thức
Tính khả dụng của chức năng và các điều kiện truy cập bổ sung được kiểm tra khi thực hiện yêu cầu.
Giới hạn tần suất: 20 yêu cầu trong 60 giây từ một địa chỉ.
/api/v1/auth/login/2faCác trường JSON / biểu mẫu
| Trường | Kiểu | Bắt buộc | Kiểm tra / mô tả |
|---|---|---|---|
temp_token | string | có | required |
totp_code | string | có | required,len=6 |
{
"temp_token": "PLACEHOLDER_TEMP_TOKEN (string)",
"totp_code": "PLACEHOLDER_TOTP_CODE (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: Login2FARequest
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, AuthResponse. Các trường và kiểu dữ liệu nằm trên trang “Lược đồ dữ liệu”.
Nếu có nhiều biến thể phản hồi, các trường của chúng được liệt kê trong các lược đồ riêng; không nên gộp chúng thành một đối tượng.
Đặ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.
POST /api/v1/auth/logout — Đăng xuất và thu hồi refresh token
Quyền truy cập: Không cần đăng nhập; điều kiện bổ sung được ghi ở phương thức
/api/v1/auth/logoutCác trường JSON / biểu mẫu
| Trường | Kiểu | Bắt buộc | Kiểm tra / mô tả |
|---|---|---|---|
refresh_token | string | không | ; Tùy chọn: thu hồi token làm mới được chỉ định |
{
"refresh_token": "PLACEHOLDER_REFRESH_TOKEN (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: LogoutRequest
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: LogoutResponse. 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": {
"message": "PLACEHOLDER_MESSAGE (string)"
}
}Đặ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/auth/me — Người dùng hiện tại, số dư và giới hạn
Quyền truy cập: Token trang quản lý tài khoản
/api/v1/auth/mecurl --fail-with-body "https://ailoot.ai/api/v1/auth/me" \
-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.
POST /api/v1/auth/passkey/login/begin — Bắt đầu đăng nhập bằng passkey
Quyền truy cập: Không cần đăng nhập; điều kiện bổ sung được ghi ở phương thức
Tính khả dụng của chức năng và các điều kiện truy cập bổ sung được kiểm tra khi thực hiện yêu cầu.
Giới hạn tần suất: 20 yêu cầu trong 60 giây từ một địa chỉ.
/api/v1/auth/passkey/login/beginCác trường JSON / biểu mẫu
| Trường | Kiểu | Bắt buộc | Kiểm tra / mô tả |
|---|---|---|---|
turnstile_token | string | không |
{
"turnstile_token": "PLACEHOLDER_TURNSTILE_TOKEN (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: PasskeyBeginLoginRequest
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: PasskeyOptionsResponse. 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": {
"session_token": "PLACEHOLDER_SESSION_TOKEN (string)",
"options": "PLACEHOLDER_OPTIONS (any)"
}
}Đặ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: 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.
POST /api/v1/auth/passkey/login/finish — Hoàn tất đăng nhập bằng passkey
Quyền truy cập: Không cần đăng nhập; điều kiện bổ sung được ghi ở phương thức
Tính khả dụng của chức năng và các điều kiện truy cập bổ sung được kiểm tra khi thực hiện yêu cầu.
Giới hạn tần suất: 20 yêu cầu trong 60 giây từ một địa chỉ.
/api/v1/auth/passkey/login/finishCác trường JSON / biểu mẫu
| Trường | Kiểu | Bắt buộc | Kiểm tra / mô tả |
|---|---|---|---|
session_token | string | có | required |
name | string | không | |
credential | object | có | required |
{
"session_token": "PLACEHOLDER_SESSION_TOKEN (string)",
"name": "PLACEHOLDER_NAME (string)",
"credential": "PLACEHOLDER_CREDENTIAL (object)"
}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: PasskeyFinishRequest
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, AuthResponse. Các trường và kiểu dữ liệu nằm trên trang “Lược đồ dữ liệu”.
Nếu có nhiều biến thể phản hồi, các trường của chúng được liệt kê trong các lược đồ riêng; không nên gộp chúng thành một đối tượng.
Đặ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: 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.
POST /api/v1/auth/refresh — Làm mới token
Quyền truy cập: Không cần đăng nhập; điều kiện bổ sung được ghi ở phương thức
Tính khả dụng của chức năng và các điều kiện truy cập bổ sung được kiểm tra khi thực hiện yêu cầu.
Giới hạn tần suất: 30 yêu cầu trong 60 giây từ một địa chỉ.
/api/v1/auth/refreshCác trường JSON / biểu mẫu
| Trường | Kiểu | Bắt buộc | Kiểm tra / mô tả |
|---|---|---|---|
refresh_token | string | có | required |
{
"refresh_token": "PLACEHOLDER_REFRESH_TOKEN (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: RefreshTokenRequest
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: RefreshTokenResponse. 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": {
"access_token": "PLACEHOLDER_ACCESS_TOKEN (string)",
"refresh_token": "PLACEHOLDER_REFRESH_TOKEN (string)",
"expires_in": "PLACEHOLDER_EXPIRES_IN (integer)",
"token_type": "PLACEHOLDER_TOKEN_TYPE (string)"
}
}Đặ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.
POST /api/v1/auth/register — Đăng ký
Quyền truy cập: Không cần đăng nhập; điều kiện bổ sung được ghi ở phương thức
Giới hạn tần suất: 5 yêu cầu trong 60 giây từ một địa chỉ.
/api/v1/auth/registerCác trường JSON / biểu mẫu
| Trường | Kiểu | Bắt buộc | Kiểm tra / mô tả |
|---|---|---|---|
email | string | có | required,email |
password | string | có | required,min=6 |
verify_code | string | không | |
turnstile_token | string | không | |
promo_code | string | không | ; Mã khuyến mại khi đăng ký |
invitation_code | string | không | ; Mã lời mời |
{
"email": "PLACEHOLDER_EMAIL (string)",
"password": "PLACEHOLDER_PASSWORD (string)",
"verify_code": "PLACEHOLDER_VERIFY_CODE (string)",
"turnstile_token": "PLACEHOLDER_TURNSTILE_TOKEN (string)",
"promo_code": "PLACEHOLDER_PROMO_CODE (string)",
"invitation_code": "PLACEHOLDER_INVITATION_CODE (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: RegisterRequest
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, AuthResponse. Các trường và kiểu dữ liệu nằm trên trang “Lược đồ dữ liệu”.
Nếu có nhiều biến thể phản hồi, các trường của chúng được liệt kê trong các lược đồ riêng; không nên gộp chúng thành một đối tượng.
Đặ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.
POST /api/v1/auth/reset-password — Đặt lại mật khẩu
Quyền truy cập: Không cần đăng nhập; điều kiện bổ sung được ghi ở phương thức
Giới hạn tần suất: 10 yêu cầu trong 60 giây từ một địa chỉ.
/api/v1/auth/reset-passwordCác trường JSON / biểu mẫu
| Trường | Kiểu | Bắt buộc | Kiểm tra / mô tả |
|---|---|---|---|
email | string | có | required,email |
token | string | có | required |
new_password | string | có | required,min=6 |
{
"email": "PLACEHOLDER_EMAIL (string)",
"token": "PLACEHOLDER_TOKEN (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: ResetPasswordRequest
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: ResetPasswordResponse. 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": {
"message": "PLACEHOLDER_MESSAGE (string)"
}
}Đặ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.
POST /api/v1/auth/revoke-all-sessions — Thu hồi tất cả phiên
Quyền truy cập: Token trang quản lý tài khoản
/api/v1/auth/revoke-all-sessionsKhông cần nội dung yêu cầu.
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: RevokeAllSessionsResponse. 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": {
"message": "PLACEHOLDER_MESSAGE (string)"
}
}Đặ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.
POST /api/v1/auth/send-verify-code — Gửi mã xác nhận
Quyền truy cập: Không cần đăng nhập; điều kiện bổ sung được ghi ở phương thức
Giới hạn tần suất: 5 yêu cầu trong 60 giây từ một địa chỉ.
/api/v1/auth/send-verify-codeCác trường JSON / biểu mẫu
| Trường | Kiểu | Bắt buộc | Kiểm tra / mô tả |
|---|---|---|---|
email | string | có | required,email |
turnstile_token | string | không |
{
"email": "PLACEHOLDER_EMAIL (string)",
"turnstile_token": "PLACEHOLDER_TURNSTILE_TOKEN (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: SendVerifyCodeRequest
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: SendVerifyCodeResponse. 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": {
"message": "PLACEHOLDER_MESSAGE (string)",
"countdown": "PLACEHOLDER_COUNTDOWN (integer)"
}
}Đặ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.
POST /api/v1/auth/validate-invitation-code — Kiểm tra lời mời
Quyền truy cập: Không cần đăng nhập; điều kiện bổ sung được ghi ở phương thức
Tính khả dụng của chức năng và các điều kiện truy cập bổ sung được kiểm tra khi thực hiện yêu cầu.
Giới hạn tần suất: 10 yêu cầu trong 60 giây từ một địa chỉ.
/api/v1/auth/validate-invitation-codeCác trường JSON / biểu mẫu
| Trường | Kiểu | Bắt buộc | Kiểm tra / mô tả |
|---|---|---|---|
code | string | có | required |
{
"code": "PLACEHOLDER_CODE (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: ValidateInvitationCodeRequest
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: ValidateInvitationCodeResponse. 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": {
"valid": "PLACEHOLDER_VALID (boolean)",
"error_code": "PLACEHOLDER_ERROR_CODE (string)"
}
}Đặc điểm: Phương thức kiểm tra lời mời và không tiêu thụ mã; ví dụ mô tả hợp đồng API và không được thực thi.
POST /api/v1/auth/validate-promo-code — Kiểm tra mã khuyến mại
Quyền truy cập: Không cần đăng nhập; điều kiện bổ sung được ghi ở phương thức
Tính khả dụng của chức năng và các điều kiện truy cập bổ sung được kiểm tra khi thực hiện yêu cầu.
Giới hạn tần suất: 10 yêu cầu trong 60 giây từ một địa chỉ.
/api/v1/auth/validate-promo-codeCác trường JSON / biểu mẫu
| Trường | Kiểu | Bắt buộc | Kiểm tra / mô tả |
|---|---|---|---|
code | string | có | required |
{
"code": "PLACEHOLDER_CODE (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: ValidatePromoCodeRequest
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: ValidatePromoCodeResponse. 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": {
"valid": "PLACEHOLDER_VALID (boolean)",
"bonus_amount": "PLACEHOLDER_BONUS_AMOUNT (number)",
"error_code": "PLACEHOLDER_ERROR_CODE (string)",
"message": "PLACEHOLDER_MESSAGE (string)"
}
}Đặc điểm: Phương thức kiểm tra mã khuyến mãi và không cộng thưởng; ví dụ mô tả hợp đồng API và không được thực thi.
Đăng nhập và phiên · 2FA
POST /api/v1/auth/login → data
data.requires_2fa === true→ TotpLoginResponse →data.temp_token→POST /api/v1/auth/login/2fa·{"temp_token": "…", "totp_code": "…"}→data.access_tokendata.access_token→ AuthResponse →Authorization: Bearer $TOKEN
totp_code: string, len = 6. temp_token ≠ access_token. User