dokumentasi
API panel pengguna

Log masuk dan sesi

Markdown

Kaedah, medan permintaan dan respons.

Panduan lengkap

Bahagian ini mengandungi 14 kaedah. Buka kaedah untuk melihat syarat akses, medan permintaan dan respons.

Kaedah dan laluanPeneranganAkses
POST /api/v1/auth/forgot-passwordPermintaan tetapan semula kata laluanTanpa log masuk; syarat tambahan dinyatakan pada kaedah
POST /api/v1/auth/loginLog masuk dengan e-mel dan kata laluanTanpa log masuk; syarat tambahan dinyatakan pada kaedah
POST /api/v1/auth/login/2faLengkapkan log masuk dengan TOTPTanpa log masuk; syarat tambahan dinyatakan pada kaedah
POST /api/v1/auth/logoutLog keluar dan batalkan refresh tokenTanpa log masuk; syarat tambahan dinyatakan pada kaedah
GET /api/v1/auth/mePengguna semasa, baki dan hadToken panel pengguna
POST /api/v1/auth/passkey/login/beginMulakan log masuk dengan passkeyTanpa log masuk; syarat tambahan dinyatakan pada kaedah
POST /api/v1/auth/passkey/login/finishLengkapkan log masuk dengan passkeyTanpa log masuk; syarat tambahan dinyatakan pada kaedah
POST /api/v1/auth/refreshPembaharuan tokenTanpa log masuk; syarat tambahan dinyatakan pada kaedah
POST /api/v1/auth/registerDaftarTanpa log masuk; syarat tambahan dinyatakan pada kaedah
POST /api/v1/auth/reset-passwordTetapkan semula kata laluanTanpa log masuk; syarat tambahan dinyatakan pada kaedah
POST /api/v1/auth/revoke-all-sessionsBatalkan semua sesiToken panel pengguna
POST /api/v1/auth/send-verify-codeHantar kod pengesahanTanpa log masuk; syarat tambahan dinyatakan pada kaedah
POST /api/v1/auth/validate-invitation-codeSemak jemputanTanpa log masuk; syarat tambahan dinyatakan pada kaedah
POST /api/v1/auth/validate-promo-codeSemak kod promosiTanpa log masuk; syarat tambahan dinyatakan pada kaedah
POST /api/v1/auth/forgot-password — Permintaan tetapan semula kata laluan

Akses: Tanpa log masuk; syarat tambahan dinyatakan pada kaedah

Had kadar: 5 permintaan setiap 60 saat daripada satu alamat.

POST/api/v1/auth/forgot-password

Medan JSON / borang

MedanJenisWajibPengesahan / penerangan
emailstringyarequired,email
turnstile_tokenstringtidak
Templat badan permintaan
{
  "email": "PLACEHOLDER_EMAIL (string)",
  "turnstile_token": "PLACEHOLDER_TURNSTILE_TOKEN (string)"
}

PLACEHOLDER mewakili input anda dan jenisnya. Gantikan nilai dan kekalkan hanya medan pilihan yang diperlukan; penanda rentetan tidak boleh dihantar sebagai ganti nombor, boolean, objek atau tatasusunan.

Skema permintaan: ForgotPasswordRequest

Respons

Respons JSON mengandungi code, message dan data. Kandungan data diterangkan dalam skema di bawah.

Skema data respons: ForgotPasswordResponse. Medan dan jenisnya terdapat pada halaman “Skema data”.

Skema respons, nilai hanyalah contoh
{
  "code": 0,
  "message": "success",
  "data": {
    "message": "PLACEHOLDER_MESSAGE (string)"
  }
}

Nota khusus: Operasi mengubah keadaan atau meneruskan pengesahan sekali guna; contoh ini menerangkan kontrak dan tidak dijalankan.

POST /api/v1/auth/login — Log masuk dengan e-mel dan kata laluan

Akses: Tanpa log masuk; syarat tambahan dinyatakan pada kaedah

Ketersediaan ciri dan syarat akses tambahan diperiksa semasa permintaan dilaksanakan.

Had kadar: 20 permintaan setiap 60 saat daripada satu alamat.

POST/api/v1/auth/login

Medan JSON / borang

MedanJenisWajibPengesahan / penerangan
emailstringyarequired,email
passwordstringyarequired
turnstile_tokenstringtidak
Templat badan permintaan
{
  "email": "PLACEHOLDER_EMAIL (string)",
  "password": "PLACEHOLDER_PASSWORD (string)",
  "turnstile_token": "PLACEHOLDER_TURNSTILE_TOKEN (string)"
}

PLACEHOLDER mewakili input anda dan jenisnya. Gantikan nilai dan kekalkan hanya medan pilihan yang diperlukan; penanda rentetan tidak boleh dihantar sebagai ganti nombor, boolean, objek atau tatasusunan.

Skema permintaan: LoginRequest

Respons

Respons JSON mengandungi code, message dan data. Kandungan data diterangkan dalam skema di bawah.

Skema data respons: TotpLoginResponse, User, AuthResponse. Medan dan jenisnya terdapat pada halaman “Skema data”.

Jika terdapat beberapa bentuk respons yang mungkin, medannya disenaraikan dalam skema berasingan; jangan gabungkannya menjadi satu objek.

Nota khusus: Operasi mengubah keadaan atau meneruskan pengesahan sekali guna; contoh ini menerangkan kontrak dan tidak dijalankan.

POST /api/v1/auth/login/2fa — Lengkapkan log masuk dengan TOTP

Akses: Tanpa log masuk; syarat tambahan dinyatakan pada kaedah

Ketersediaan ciri dan syarat akses tambahan diperiksa semasa permintaan dilaksanakan.

Had kadar: 20 permintaan setiap 60 saat daripada satu alamat.

POST/api/v1/auth/login/2fa

Medan JSON / borang

MedanJenisWajibPengesahan / penerangan
temp_tokenstringyarequired
totp_codestringyarequired,len=6
Templat badan permintaan
{
  "temp_token": "PLACEHOLDER_TEMP_TOKEN (string)",
  "totp_code": "PLACEHOLDER_TOTP_CODE (string)"
}

PLACEHOLDER mewakili input anda dan jenisnya. Gantikan nilai dan kekalkan hanya medan pilihan yang diperlukan; penanda rentetan tidak boleh dihantar sebagai ganti nombor, boolean, objek atau tatasusunan.

Skema permintaan: Login2FARequest

Respons

Respons JSON mengandungi code, message dan data. Kandungan data diterangkan dalam skema di bawah.

Skema data respons: User, AuthResponse. Medan dan jenisnya terdapat pada halaman “Skema data”.

Jika terdapat beberapa bentuk respons yang mungkin, medannya disenaraikan dalam skema berasingan; jangan gabungkannya menjadi satu objek.

Nota khusus: Operasi mengubah keadaan atau meneruskan pengesahan sekali guna; contoh ini menerangkan kontrak dan tidak dijalankan.

POST /api/v1/auth/logout — Log keluar dan batalkan refresh token

Akses: Tanpa log masuk; syarat tambahan dinyatakan pada kaedah

POST/api/v1/auth/logout

Medan JSON / borang

MedanJenisWajibPengesahan / penerangan
refresh_tokenstringtidak; Pilihan: batalkan token pembaharuan yang dinyatakan
Templat badan permintaan
{
  "refresh_token": "PLACEHOLDER_REFRESH_TOKEN (string)"
}

PLACEHOLDER mewakili input anda dan jenisnya. Gantikan nilai dan kekalkan hanya medan pilihan yang diperlukan; penanda rentetan tidak boleh dihantar sebagai ganti nombor, boolean, objek atau tatasusunan.

Skema permintaan: LogoutRequest

Respons

Respons JSON mengandungi code, message dan data. Kandungan data diterangkan dalam skema di bawah.

Skema data respons: LogoutResponse. Medan dan jenisnya terdapat pada halaman “Skema data”.

Skema respons, nilai hanyalah contoh
{
  "code": 0,
  "message": "success",
  "data": {
    "message": "PLACEHOLDER_MESSAGE (string)"
  }
}

Nota khusus: Operasi mengubah keadaan atau meneruskan pengesahan sekali guna; contoh ini menerangkan kontrak dan tidak dijalankan.

GET /api/v1/auth/me — Pengguna semasa, baki dan had

Akses: Token panel pengguna

GET/api/v1/auth/me
Baca sahaja; ID diambil daripada respons anda yang terdahulu
curl --fail-with-body "https://ailoot.ai/api/v1/auth/me" \
  -H "Authorization: Bearer $TOKEN"

Badan permintaan tidak diperlukan. Hantar parameter yang dinyatakan di atas dalam URL.

Respons

Respons JSON mengandungi code, message dan data. Kandungan data diterangkan dalam skema di bawah.

Skema data respons: User, UserProfileResponse. Medan dan jenisnya terdapat pada halaman “Skema data”.

Skema respons, nilai hanyalah contoh
{
  "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)"
  }
}

Nota khusus: Semua data peribadi dan objek dihadkan kepada subjek JWT.

Nota khusus: Had perbelanjaan kunci (quota, quota_used) diterima dalam respons kunci, bukan dalam profil. frozen_balance ialah amaun yang dirizabkan dan tidak boleh dianggap sebagai baki tersedia.

POST /api/v1/auth/passkey/login/begin — Mulakan log masuk dengan passkey

Akses: Tanpa log masuk; syarat tambahan dinyatakan pada kaedah

Ketersediaan ciri dan syarat akses tambahan diperiksa semasa permintaan dilaksanakan.

Had kadar: 20 permintaan setiap 60 saat daripada satu alamat.

POST/api/v1/auth/passkey/login/begin

Medan JSON / borang

MedanJenisWajibPengesahan / penerangan
turnstile_tokenstringtidak
Templat badan permintaan
{
  "turnstile_token": "PLACEHOLDER_TURNSTILE_TOKEN (string)"
}

PLACEHOLDER mewakili input anda dan jenisnya. Gantikan nilai dan kekalkan hanya medan pilihan yang diperlukan; penanda rentetan tidak boleh dihantar sebagai ganti nombor, boolean, objek atau tatasusunan.

Skema permintaan: PasskeyBeginLoginRequest

Respons

Respons JSON mengandungi code, message dan data. Kandungan data diterangkan dalam skema di bawah.

Skema data respons: PasskeyOptionsResponse. Medan dan jenisnya terdapat pada halaman “Skema data”.

Skema respons, nilai hanyalah contoh
{
  "code": 0,
  "message": "success",
  "data": {
    "session_token": "PLACEHOLDER_SESSION_TOKEN (string)",
    "options": "PLACEHOLDER_OPTIONS (any)"
  }
}

Nota khusus: Operasi mengubah keadaan atau meneruskan pengesahan sekali guna; contoh ini menerangkan kontrak dan tidak dijalankan.

Nota khusus: credential diperoleh daripada navigator.credentials; session_token daripada begin. Badan finish <=65536 bait; pendaftaran dan pemadaman memerlukan kata laluan.

POST /api/v1/auth/passkey/login/finish — Lengkapkan log masuk dengan passkey

Akses: Tanpa log masuk; syarat tambahan dinyatakan pada kaedah

Ketersediaan ciri dan syarat akses tambahan diperiksa semasa permintaan dilaksanakan.

Had kadar: 20 permintaan setiap 60 saat daripada satu alamat.

POST/api/v1/auth/passkey/login/finish

Medan JSON / borang

MedanJenisWajibPengesahan / penerangan
session_tokenstringyarequired
namestringtidak
credentialobjectyarequired
Templat badan permintaan
{
  "session_token": "PLACEHOLDER_SESSION_TOKEN (string)",
  "name": "PLACEHOLDER_NAME (string)",
  "credential": "PLACEHOLDER_CREDENTIAL (object)"
}

PLACEHOLDER mewakili input anda dan jenisnya. Gantikan nilai dan kekalkan hanya medan pilihan yang diperlukan; penanda rentetan tidak boleh dihantar sebagai ganti nombor, boolean, objek atau tatasusunan.

Skema permintaan: PasskeyFinishRequest

Respons

Respons JSON mengandungi code, message dan data. Kandungan data diterangkan dalam skema di bawah.

Skema data respons: User, AuthResponse. Medan dan jenisnya terdapat pada halaman “Skema data”.

Jika terdapat beberapa bentuk respons yang mungkin, medannya disenaraikan dalam skema berasingan; jangan gabungkannya menjadi satu objek.

Nota khusus: Operasi mengubah keadaan atau meneruskan pengesahan sekali guna; contoh ini menerangkan kontrak dan tidak dijalankan.

Nota khusus: credential diperoleh daripada navigator.credentials; session_token daripada begin. Badan finish <=65536 bait; pendaftaran dan pemadaman memerlukan kata laluan.

POST /api/v1/auth/refresh — Pembaharuan token

Akses: Tanpa log masuk; syarat tambahan dinyatakan pada kaedah

Ketersediaan ciri dan syarat akses tambahan diperiksa semasa permintaan dilaksanakan.

Had kadar: 30 permintaan setiap 60 saat daripada satu alamat.

POST/api/v1/auth/refresh

Medan JSON / borang

MedanJenisWajibPengesahan / penerangan
refresh_tokenstringyarequired
Templat badan permintaan
{
  "refresh_token": "PLACEHOLDER_REFRESH_TOKEN (string)"
}

PLACEHOLDER mewakili input anda dan jenisnya. Gantikan nilai dan kekalkan hanya medan pilihan yang diperlukan; penanda rentetan tidak boleh dihantar sebagai ganti nombor, boolean, objek atau tatasusunan.

Skema permintaan: RefreshTokenRequest

Respons

Respons JSON mengandungi code, message dan data. Kandungan data diterangkan dalam skema di bawah.

Skema data respons: RefreshTokenResponse. Medan dan jenisnya terdapat pada halaman “Skema data”.

Skema respons, nilai hanyalah contoh
{
  "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)"
  }
}

Nota khusus: Operasi mengubah keadaan atau meneruskan pengesahan sekali guna; contoh ini menerangkan kontrak dan tidak dijalankan.

POST /api/v1/auth/register — Pendaftaran

Akses: Tanpa log masuk; syarat tambahan dinyatakan pada kaedah

Had kadar: 5 permintaan setiap 60 saat daripada satu alamat.

POST/api/v1/auth/register

Medan JSON / borang

MedanJenisWajibPengesahan / penerangan
emailstringyarequired,email
passwordstringyarequired,min=6
verify_codestringtidak
turnstile_tokenstringtidak
promo_codestringtidak; Kod promosi pendaftaran
invitation_codestringtidak; Kod jemputan
Templat badan permintaan
{
  "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 mewakili input anda dan jenisnya. Gantikan nilai dan kekalkan hanya medan pilihan yang diperlukan; penanda rentetan tidak boleh dihantar sebagai ganti nombor, boolean, objek atau tatasusunan.

Skema permintaan: RegisterRequest

Respons

Respons JSON mengandungi code, message dan data. Kandungan data diterangkan dalam skema di bawah.

Skema data respons: User, AuthResponse. Medan dan jenisnya terdapat pada halaman “Skema data”.

Jika terdapat beberapa bentuk respons yang mungkin, medannya disenaraikan dalam skema berasingan; jangan gabungkannya menjadi satu objek.

Nota khusus: Operasi mengubah keadaan atau meneruskan pengesahan sekali guna; contoh ini menerangkan kontrak dan tidak dijalankan.

POST /api/v1/auth/reset-password — Tetapkan semula kata laluan

Akses: Tanpa log masuk; syarat tambahan dinyatakan pada kaedah

Had kadar: 10 permintaan setiap 60 saat daripada satu alamat.

POST/api/v1/auth/reset-password

Medan JSON / borang

MedanJenisWajibPengesahan / penerangan
emailstringyarequired,email
tokenstringyarequired
new_passwordstringyarequired,min=6
Templat badan permintaan
{
  "email": "PLACEHOLDER_EMAIL (string)",
  "token": "PLACEHOLDER_TOKEN (string)",
  "new_password": "PLACEHOLDER_NEW_PASSWORD (string)"
}

PLACEHOLDER mewakili input anda dan jenisnya. Gantikan nilai dan kekalkan hanya medan pilihan yang diperlukan; penanda rentetan tidak boleh dihantar sebagai ganti nombor, boolean, objek atau tatasusunan.

Skema permintaan: ResetPasswordRequest

Respons

Respons JSON mengandungi code, message dan data. Kandungan data diterangkan dalam skema di bawah.

Skema data respons: ResetPasswordResponse. Medan dan jenisnya terdapat pada halaman “Skema data”.

Skema respons, nilai hanyalah contoh
{
  "code": 0,
  "message": "success",
  "data": {
    "message": "PLACEHOLDER_MESSAGE (string)"
  }
}

Nota khusus: Operasi mengubah keadaan atau meneruskan pengesahan sekali guna; contoh ini menerangkan kontrak dan tidak dijalankan.

POST /api/v1/auth/revoke-all-sessions — Batalkan semua sesi

Akses: Token panel pengguna

POST/api/v1/auth/revoke-all-sessions

Badan permintaan tidak diperlukan.

Respons

Respons JSON mengandungi code, message dan data. Kandungan data diterangkan dalam skema di bawah.

Skema data respons: RevokeAllSessionsResponse. Medan dan jenisnya terdapat pada halaman “Skema data”.

Skema respons, nilai hanyalah contoh
{
  "code": 0,
  "message": "success",
  "data": {
    "message": "PLACEHOLDER_MESSAGE (string)"
  }
}

Nota khusus: Semua data peribadi dan objek dihadkan kepada subjek JWT.

Nota khusus: Operasi mengubah keadaan atau meneruskan pengesahan sekali guna; contoh ini menerangkan kontrak dan tidak dijalankan.

POST /api/v1/auth/send-verify-code — Hantar kod pengesahan

Akses: Tanpa log masuk; syarat tambahan dinyatakan pada kaedah

Had kadar: 5 permintaan setiap 60 saat daripada satu alamat.

POST/api/v1/auth/send-verify-code

Medan JSON / borang

MedanJenisWajibPengesahan / penerangan
emailstringyarequired,email
turnstile_tokenstringtidak
Templat badan permintaan
{
  "email": "PLACEHOLDER_EMAIL (string)",
  "turnstile_token": "PLACEHOLDER_TURNSTILE_TOKEN (string)"
}

PLACEHOLDER mewakili input anda dan jenisnya. Gantikan nilai dan kekalkan hanya medan pilihan yang diperlukan; penanda rentetan tidak boleh dihantar sebagai ganti nombor, boolean, objek atau tatasusunan.

Skema permintaan: SendVerifyCodeRequest

Respons

Respons JSON mengandungi code, message dan data. Kandungan data diterangkan dalam skema di bawah.

Skema data respons: SendVerifyCodeResponse. Medan dan jenisnya terdapat pada halaman “Skema data”.

Skema respons, nilai hanyalah contoh
{
  "code": 0,
  "message": "success",
  "data": {
    "message": "PLACEHOLDER_MESSAGE (string)",
    "countdown": "PLACEHOLDER_COUNTDOWN (integer)"
  }
}

Nota khusus: Operasi mengubah keadaan atau meneruskan pengesahan sekali guna; contoh ini menerangkan kontrak dan tidak dijalankan.

POST /api/v1/auth/validate-invitation-code — Semak jemputan

Akses: Tanpa log masuk; syarat tambahan dinyatakan pada kaedah

Ketersediaan ciri dan syarat akses tambahan diperiksa semasa permintaan dilaksanakan.

Had kadar: 10 permintaan setiap 60 saat daripada satu alamat.

POST/api/v1/auth/validate-invitation-code

Medan JSON / borang

MedanJenisWajibPengesahan / penerangan
codestringyarequired
Templat badan permintaan
{
  "code": "PLACEHOLDER_CODE (string)"
}

PLACEHOLDER mewakili input anda dan jenisnya. Gantikan nilai dan kekalkan hanya medan pilihan yang diperlukan; penanda rentetan tidak boleh dihantar sebagai ganti nombor, boolean, objek atau tatasusunan.

Skema permintaan: ValidateInvitationCodeRequest

Respons

Respons JSON mengandungi code, message dan data. Kandungan data diterangkan dalam skema di bawah.

Skema data respons: ValidateInvitationCodeResponse. Medan dan jenisnya terdapat pada halaman “Skema data”.

Skema respons, nilai hanyalah contoh
{
  "code": 0,
  "message": "success",
  "data": {
    "valid": "PLACEHOLDER_VALID (boolean)",
    "error_code": "PLACEHOLDER_ERROR_CODE (string)"
  }
}

Nota: Kaedah ini menyemak jemputan tanpa menebus kod; contoh ini menerangkan kontrak dan tidak dijalankan.

POST /api/v1/auth/validate-promo-code — Semak kod promosi

Akses: Tanpa log masuk; syarat tambahan dinyatakan pada kaedah

Ketersediaan ciri dan syarat akses tambahan diperiksa semasa permintaan dilaksanakan.

Had kadar: 10 permintaan setiap 60 saat daripada satu alamat.

POST/api/v1/auth/validate-promo-code

Medan JSON / borang

MedanJenisWajibPengesahan / penerangan
codestringyarequired
Templat badan permintaan
{
  "code": "PLACEHOLDER_CODE (string)"
}

PLACEHOLDER mewakili input anda dan jenisnya. Gantikan nilai dan kekalkan hanya medan pilihan yang diperlukan; penanda rentetan tidak boleh dihantar sebagai ganti nombor, boolean, objek atau tatasusunan.

Skema permintaan: ValidatePromoCodeRequest

Respons

Respons JSON mengandungi code, message dan data. Kandungan data diterangkan dalam skema di bawah.

Skema data respons: ValidatePromoCodeResponse. Medan dan jenisnya terdapat pada halaman “Skema data”.

Skema respons, nilai hanyalah contoh
{
  "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)"
  }
}

Nota: Kaedah ini menyemak kod promosi tanpa mengkreditkan bonus; contoh ini menerangkan kontrak dan tidak dijalankan.

Log masuk dan sesi · 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_token
  • data.access_token → AuthResponse → Authorization: Bearer $TOKEN

totp_code: string, len = 6. temp_token ≠ access_token. User

Masih ada soalan? Hantar Request ID dan penerangannya — kami akan membantu menyiasatnya.Hubungi sokongan