Profil und Sicherheit
MarkdownMethoden, Anfragefelder und Antworten.
Vollständiger Leitfaden
Dieser Abschnitt enthält 6 Methoden. Öffnen Sie eine Methode, um Zugriffsbedingungen, Anfragefelder und Antwort zu sehen.
| Methode und Pfad | Beschreibung | Zugriff |
|---|---|---|
PUT /api/v1/user | Profil ändern | Token des Kundenbereichs |
GET /api/v1/user/passkeys | Passkey-Liste | Token des Kundenbereichs |
PUT /api/v1/user/password | Passwort ändern | Token des Kundenbereichs |
GET /api/v1/user/profile | Profil, Guthaben und Verknüpfungen | Token des Kundenbereichs |
GET /api/v1/user/totp/status | 2FA-Status (TOTP) | Token des Kundenbereichs |
GET /api/v1/user/totp/verification-method | TOTP-Prüfmethode | Token des Kundenbereichs |
PUT /api/v1/user — Profil ändern
Zugriff: Token des Kundenbereichs
/api/v1/userJSON- / Formularfelder
| Das Feld | Typ | Erforderlich | Prüfung / Beschreibung |
|---|---|---|---|
username | string | nein | ; kann null sein |
avatar_url | string | nein | ; kann null sein |
balance_notify_enabled | boolean | nein | ; kann null sein |
balance_notify_threshold | number | nein | ; kann null sein |
{
"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 kennzeichnet Ihre Eingabe und deren Typ. Ersetzen Sie die Werte und behalten Sie nur die benötigten optionalen Felder bei. Zeichenfolgenmarker werden nicht anstelle von Zahlen, boolean, Objekten oder Arrays gesendet.
Anfrageschema: UpdateProfileRequest
Antwort
Die JSON-Antwort enthält code, message und data. Der Inhalt von data wird in den folgenden Schemata beschrieben.
Datenschemata der Antwort: User, UserProfileResponse. Felder und Typen stehen auf den Seiten „Datenschemata“.
{
"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)"
}
}Besonderheit: Alle personenbezogenen Daten und Objekte sind auf das JWT-Subjekt beschränkt.
Besonderheit: Die Operation verändert den Zustand oder setzt eine einmalige Authentifizierung fort. Das Beispiel beschreibt den API-Kontrakt und wird nicht ausgeführt.
Besonderheit: Ausgabenlimits der Schlüssel (quota, quota_used) stehen in der Schlüsselantwort, nicht im Profil. frozen_balance ist der reservierte Betrag und darf nicht als freies Guthaben betrachtet werden.
GET /api/v1/user/passkeys — Passkey-Liste
Zugriff: Token des Kundenbereichs
/api/v1/user/passkeyscurl --fail-with-body "https://ailoot.ai/api/v1/user/passkeys" \
-H "Authorization: Bearer $TOKEN"Ein Anfrageinhalt ist nicht erforderlich. Übermitteln Sie die oben genannten Parameter in der URL.
Antwort
Die JSON-Antwort enthält code, message und data. Der Inhalt von data wird in den folgenden Schemata beschrieben.
Datenschemata der Antwort: PasskeyCredentialSummary. Felder und Typen stehen auf den Seiten „Datenschemata“.
{
"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)"
}
}Besonderheit: Alle personenbezogenen Daten und Objekte sind auf das JWT-Subjekt beschränkt.
Besonderheit: credential stammt aus navigator.credentials, session_token aus begin. Der Finish-Anfrageinhalt ist auf <=65536 Byte begrenzt; Registrierung und Löschung erfordern ein Passwort.
PUT /api/v1/user/password — Passwort ändern
Zugriff: Token des Kundenbereichs
/api/v1/user/passwordJSON- / Formularfelder
| Das Feld | Typ | Erforderlich | Prüfung / Beschreibung |
|---|---|---|---|
old_password | string | ja | required |
new_password | string | ja | required,min=6 |
{
"old_password": "PLACEHOLDER_OLD_PASSWORD (string)",
"new_password": "PLACEHOLDER_NEW_PASSWORD (string)"
}PLACEHOLDER kennzeichnet Ihre Eingabe und deren Typ. Ersetzen Sie die Werte und behalten Sie nur die benötigten optionalen Felder bei. Zeichenfolgenmarker werden nicht anstelle von Zahlen, boolean, Objekten oder Arrays gesendet.
Anfrageschema: ChangePasswordRequest
Antwort
Die JSON-Antwort enthält code, message und data. Der Inhalt von data wird in den folgenden Schemata beschrieben.
{
"code": 0,
"message": "success",
"data": {
"message": "VALUE_FROM_RESPONSE"
}
}Besonderheit: Alle personenbezogenen Daten und Objekte sind auf das JWT-Subjekt beschränkt.
Besonderheit: Die Operation verändert den Zustand oder setzt eine einmalige Authentifizierung fort. Das Beispiel beschreibt den API-Kontrakt und wird nicht ausgeführt.
GET /api/v1/user/profile — Profil, Guthaben und Verknüpfungen
Zugriff: Token des Kundenbereichs
/api/v1/user/profilecurl --fail-with-body "https://ailoot.ai/api/v1/user/profile" \
-H "Authorization: Bearer $TOKEN"Ein Anfrageinhalt ist nicht erforderlich. Übermitteln Sie die oben genannten Parameter in der URL.
Antwort
Die JSON-Antwort enthält code, message und data. Der Inhalt von data wird in den folgenden Schemata beschrieben.
Datenschemata der Antwort: User, UserProfileResponse. Felder und Typen stehen auf den Seiten „Datenschemata“.
{
"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)"
}
}Besonderheit: Alle personenbezogenen Daten und Objekte sind auf das JWT-Subjekt beschränkt.
Besonderheit: Ausgabenlimits der Schlüssel (quota, quota_used) stehen in der Schlüsselantwort, nicht im Profil. frozen_balance ist der reservierte Betrag und darf nicht als freies Guthaben betrachtet werden.
GET /api/v1/user/totp/status — 2FA-Status (TOTP)
Zugriff: Token des Kundenbereichs
/api/v1/user/totp/statuscurl --fail-with-body "https://ailoot.ai/api/v1/user/totp/status" \
-H "Authorization: Bearer $TOKEN"Ein Anfrageinhalt ist nicht erforderlich. Übermitteln Sie die oben genannten Parameter in der URL.
Antwort
Die JSON-Antwort enthält code, message und data. Der Inhalt von data wird in den folgenden Schemata beschrieben.
Datenschemata der Antwort: TotpStatusResponse. Felder und Typen stehen auf den Seiten „Datenschemata“.
{
"code": 0,
"message": "success",
"data": {
"enabled": "PLACEHOLDER_ENABLED (boolean)",
"enabled_at": "PLACEHOLDER_ENABLED_AT (integer)",
"feature_enabled": "PLACEHOLDER_FEATURE_ENABLED (boolean)"
}
}Besonderheit: Alle personenbezogenen Daten und Objekte sind auf das JWT-Subjekt beschränkt.
Besonderheit: secret und setup_token sind geheim; die Prüfung hängt von den TOTP- und Nutzereinstellungen ab.
GET /api/v1/user/totp/verification-method — TOTP-Prüfmethode
Zugriff: Token des Kundenbereichs
/api/v1/user/totp/verification-methodcurl --fail-with-body "https://ailoot.ai/api/v1/user/totp/verification-method" \
-H "Authorization: Bearer $TOKEN"Ein Anfrageinhalt ist nicht erforderlich. Übermitteln Sie die oben genannten Parameter in der URL.
Antwort
Die JSON-Antwort enthält code, message und data. Der Inhalt von data wird in den folgenden Schemata beschrieben.
{
"code": 0,
"message": "success",
"data": {
"method": "email"
}
}Besonderheit: Alle personenbezogenen Daten und Objekte sind auf das JWT-Subjekt beschränkt.
Besonderheit: secret und setup_token sind geheim; die Prüfung hängt von den TOTP- und Nutzereinstellungen ab.
TotpVerificationMethod
{
"type": "object",
"required": [
"method"
],
"properties": {
"method": {
"type": "string",
"enum": [
"email",
"password"
]
}
}
}