Kontoeinstellungen über die Account API
Was ist die Logto Account API
Die Logto Account API ist eine umfassende Sammlung von APIs, die Endbenutzern direkten API-Zugang ermöglicht, ohne die Management API verwenden zu müssen. Hier die wichtigsten Punkte:
- Direkter Zugriff: Die Account API ermöglicht es Endbenutzern, direkt auf ihr eigenes Konto-Profil zuzugreifen und dieses zu verwalten, ohne die Weiterleitung über die Management API zu benötigen.
- Verwaltung von Benutzerprofilen und Identitäten: Benutzer können ihre Profile und Sicherheitseinstellungen vollständig verwalten, einschließlich der Möglichkeit, Identitätsinformationen wie E-Mail, Telefon und Passwort zu aktualisieren sowie soziale Verbindungen zu verwalten. MFA und SSO-Unterstützung folgen in Kürze.
- Globale Zugangskontrolle: Administratoren haben vollständige, globale Kontrolle über die Zugriffseinstellungen und können jedes Feld individuell anpassen.
- Nahtlose Autorisierung (Authorization): Autorisierung (Authorization) war noch nie so einfach! Verwende einfach
client.getAccessToken()
, um ein opakes Zugangstoken (Opaque token) für OP (Logto) zu erhalten, und füge es dem Authorization-Header alsBearer <access_token>
hinzu.
Um sicherzustellen, dass das Zugangstoken (Access token) die entsprechenden Berechtigungen (Permissions) hat, stelle sicher, dass du die entsprechenden Berechtigungen (Scopes) in deiner Logto-Konfiguration korrekt eingerichtet hast.
Zum Beispiel benötigst du für die POST /api/my-account/primary-email
API die Berechtigung (Scope) email
; für die POST /api/my-account/primary-phone
API die Berechtigung (Scope) phone
.
import { type LogtoConfig, UserScope } from '@logto/js';
const config: LogtoConfig = {
// ...weitere Optionen
// Füge die passenden Berechtigungen (Scopes) hinzu, die zu deinem Anwendungsfall passen.
scopes: [
UserScope.Email, // Für `{POST,DELETE} /api/my-account/primary-email` APIs
UserScope.Phone, // Für `{POST,DELETE} /api/my-account/primary-phone` APIs
UserScope.CustomData, // Zur Verwaltung benutzerdefinierter Daten
UserScope.Address, // Zur Verwaltung der Adresse
UserScope.Identities, // Für Identitäts- und MFA-bezogene APIs
UserScope.Profile, // Zur Verwaltung des Benutzerprofils
],
};
Mit der Logto Account API kannst du ein individuelles Kontoverwaltungssystem wie eine Profilseite erstellen, das vollständig mit Logto integriert ist.
Einige häufige Anwendungsfälle sind unten aufgeführt:
- Benutzerprofil abrufen
- Benutzerprofil aktualisieren
- Benutzerpasswort aktualisieren
- Benutzeridentitäten wie E-Mail, Telefon und soziale Verbindungen aktualisieren
- MFA-Faktoren (Verifizierungen) verwalten
Um mehr über die verfügbaren APIs zu erfahren, besuche bitte die Logto Account API Referenz und die Logto Verification API Referenz.
Dedizierte Account APIs für die folgenden Einstellungen erscheinen in Kürze: SSO, Benutzerdefinierte Daten (Custom data) und Kontolöschung. In der Zwischenzeit kannst du diese Funktionen mit den Logto Management APIs umsetzen. Siehe Kontoeinstellungen über die Management API für weitere Details.
MFA-Management-APIs (TOTP und Backup-Codes) befinden sich derzeit in der Entwicklung und sind nur verfügbar, wenn das Flag isDevFeaturesEnabled
auf true
gesetzt ist. WebAuthn-Passkey-Management ist vollständig verfügbar.
Wie aktiviere ich die Account API
Standardmäßig ist die Account API deaktiviert. Um sie zu aktivieren, musst du die Management API verwenden, um die globalen Einstellungen zu aktualisieren.
Der API-Endpunkt /api/account-center
kann verwendet werden, um die Einstellungen des Account Centers abzurufen und zu aktualisieren. Du kannst ihn nutzen, um die Account API zu aktivieren oder zu deaktivieren und die Felder anzupassen.
Beispielanfrage:
curl -X PATCH https://[tenant-id].logto.app/api/account-center \
-H 'authorization: Bearer <access_token for Logto Management API>' \
-H 'content-type: application/json' \
--data-raw '{"enabled":true,"fields":{"username":"Edit"}}'
Das Feld enabled
wird verwendet, um die Account API zu aktivieren oder zu deaktivieren, und das Feld fields
dient zur Anpassung der Felder. Der Wert kann Off
, Edit
, ReadOnly
sein. Der Standardwert ist Off
. Die Liste der Felder:
name
: Das Namensfeld.avatar
: Das Avatar-Feld.profile
: Das Profilfeld, einschließlich seiner Unterfelder.username
: Das Benutzername-Feld.email
: Das E-Mail-Feld.phone
: Das Telefonfeld.password
: Das Passwortfeld; beim Abrufen wirdtrue
zurückgegeben, wenn der Benutzer ein Passwort gesetzt hat, andernfallsfalse
.social
: Soziale Verbindungen.mfa
: MFA-Faktoren.
Weitere Details zur API findest du in der Logto Management API Referenz.
Wie greife ich auf die Account API zu
Zugangstoken (Access token) abrufen
Nachdem du das SDK in deiner Anwendung eingerichtet hast, kannst du die Methode client.getAccessToken()
verwenden, um ein Zugangstoken (Access token) abzurufen. Dieses Token ist ein opaker Token (Opaque token), das für den Zugriff auf die Account API verwendet werden kann.
Wenn du das offizielle SDK nicht verwendest, solltest du das Feld resource
für die Access Token Grant-Anfrage an /oidc/token
leer lassen.
Zugriff auf die Account API mit Zugangstoken (Access token)
Du solltest das Zugangstoken (Access token) im Authorization
-Feld der HTTP-Header im Bearer-Format (Bearer YOUR_TOKEN
) einfügen, wenn du mit der Account API interagierst.
Hier ein Beispiel, um die Benutzerkontoinformationen abzurufen:
curl https://[tenant-id].logto.app/api/my-account \
-H 'authorization: Bearer <access_token>'
Grundlegende Kontoinformationen verwalten
Benutzerkontoinformationen abrufen
curl https://[tenant-id].logto.app/api/my-account \
-H 'authorization: Bearer <access_token>'
Die Antwort sieht beispielsweise so aus:
{
"id": "...",
"username": "...",
"name": "...",
"avatar": "..."
}
Die Antwortfelder können je nach Account Center-Einstellungen variieren.
Grundlegende Kontoinformationen aktualisieren
Grundlegende Kontoinformationen umfassen Benutzername, Name, Avatar und Profil.
Um Benutzername, Name und Avatar zu aktualisieren, kannst du den Endpunkt PATCH /api/my-account
verwenden.
curl -X PATCH https://[tenant-id].logto.app/api/my-account \
-H 'authorization: Bearer <access_token>' \
-H 'content-type: application/json' \
--data-raw '{"username":"...","name":"...","avatar":"..."}'
Um das Profil zu aktualisieren, kannst du den Endpunkt PATCH /api/my-account/profile
verwenden.
curl -X PATCH https://[tenant-id].logto.app/api/my-account/profile \
-H 'authorization: Bearer <access_token>' \
-H 'content-type: application/json' \
--data-raw '{"familyName":"...","givenName":"..."}'
Identifikatoren und andere sensible Informationen verwalten
Aus Sicherheitsgründen erfordert die Account API eine zusätzliche Autorisierungsebene für Vorgänge, die Identifikatoren und andere sensible Informationen betreffen.
Eine Verifizierungsdatensatz-ID erhalten
Zuerst musst du eine Verifizierungsdatensatz-ID erhalten. Diese kann verwendet werden, um die Identität des Benutzers beim Aktualisieren von Identifikatoren zu verifizieren.
Um eine Verifizierungsdatensatz-ID zu erhalten, kannst du das Passwort des Benutzers verifizieren oder einen Verifizierungscode an die E-Mail oder das Telefon des Benutzers senden.
Weitere Informationen zu Verifizierungen findest du unter Sicherheitsverifizierung über die Account API.
Passwort des Benutzers verifizieren
curl -X POST https://[tenant-id].logto.app/api/verifications/password \
-H 'authorization: Bearer <access_token>' \
-H 'content-type: application/json' \
--data-raw '{"password":"..."}'
Die Antwort sieht beispielsweise so aus:
{
"verificationRecordId": "...",
"expiresAt": "..."
}
Verifizierungscode an die E-Mail oder das Telefon des Benutzers senden
Um diese Methode zu verwenden, musst du den E-Mail-Connector konfigurieren oder den SMS-Connector konfigurieren und sicherstellen, dass die UserPermissionValidation
-Vorlage eingerichtet ist.
Am Beispiel E-Mail: Fordere einen neuen Verifizierungscode an und erhalte die Verifizierungsdatensatz-ID:
curl -X POST https://[tenant-id].logto.app/api/verifications/verification-code \
-H 'authorization: Bearer <access_token>' \
-H 'content-type: application/json' \
--data-raw '{"identifier":{"type":"email","value":"..."}}'
Die Antwort sieht beispielsweise so aus:
{
"verificationRecordId": "...",
"expiresAt": "..."
}
Nach Erhalt des Verifizierungscodes kannst du ihn verwenden, um den Verifizierungsstatus des Verifizierungsdatensatzes zu aktualisieren.
curl -X POST https://[tenant-id].logto.app/api/verifications/verification-code/verify \
-H 'authorization: Bearer <access_token>' \
-H 'content-type: application/json' \
--data-raw '{"identifier":{"type":"email","value":"..."},"verificationId":"...","code":"123456"}'
Nach der Verifizierung des Codes kannst du nun die Verifizierungsdatensatz-ID verwenden, um den Identifikator des Benutzers zu aktualisieren.
Anfrage mit Verifizierungsdatensatz-ID senden
Wenn du eine Anfrage zum Aktualisieren des Benutzeridentifikators sendest, musst du die Verifizierungsdatensatz-ID im Request-Header mit dem Feld logto-verification-id
angeben.
Passwort des Benutzers aktualisieren
Um das Passwort des Benutzers zu aktualisieren, kannst du den Endpunkt POST /api/my-account/password
verwenden.
curl -X POST https://[tenant-id].logto.app/api/my-account/password \
-H 'authorization: Bearer <access_token>' \
-H 'logto-verification-id: <verification_record_id>' \
-H 'content-type: application/json' \
--data-raw '{"password":"..."}'
Neue E-Mail aktualisieren oder verknüpfen
Um diese Methode zu verwenden, musst du den E-Mail-Connector konfigurieren und sicherstellen, dass die BindNewIdentifier
-Vorlage eingerichtet ist.
Um eine neue E-Mail zu aktualisieren oder zu verknüpfen, musst du zunächst den Besitz der E-Mail nachweisen.
Rufe den Endpunkt POST /api/verifications/verification-code
auf, um einen Verifizierungscode anzufordern.
curl -X POST https://[tenant-id].logto.app/api/verifications/verification-code \
-H 'authorization: Bearer <access_token>' \
-H 'content-type: application/json' \
--data-raw '{"identifier":{"type":"email","value":"..."}}'
Du findest eine verificationId
in der Antwort und erhältst einen Verifizierungscode per E-Mail. Verwende diesen, um die E-Mail zu verifizieren.
curl -X POST https://[tenant-id].logto.app/api/verifications/verification-code/verify \
-H 'authorization: Bearer <access_token>' \
-H 'content-type: application/json' \
--data-raw '{"identifier":{"type":"email","value":"..."},"verificationId":"...","code":"..."}'
Nach der Verifizierung des Codes kannst du nun die E-Mail des Benutzers aktualisieren. Setze die verificationId
im Request-Body als newIdentifierVerificationRecordId
.
curl -X POST https://[tenant-id].logto.app/api/my-account/primary-email \
-H 'authorization: Bearer <access_token>' \
-H 'logto-verification-id: <verification_record_id>' \
-H 'content-type: application/json' \
--data-raw '{"email":"...","newIdentifierVerificationRecordId":"..."}'
E-Mail des Benutzers entfernen
Um die E-Mail des Benutzers zu entfernen, kannst du den Endpunkt DELETE /api/my-account/primary-email
verwenden.
curl -X DELETE https://[tenant-id].logto.app/api/my-account/primary-email \
-H 'authorization: Bearer <access_token>' \
-H 'logto-verification-id: <verification_record_id>'
Telefon verwalten
Um diese Methode zu verwenden, musst du den SMS-Connector konfigurieren und sicherstellen, dass die BindNewIdentifier
-Vorlage eingerichtet ist.
Ähnlich wie beim Aktualisieren der E-Mail kannst du den Endpunkt PATCH /api/my-account/primary-phone
verwenden, um ein neues Telefon zu aktualisieren oder zu verknüpfen. Und den Endpunkt DELETE /api/my-account/primary-phone
, um das Telefon des Benutzers zu entfernen.
Neue soziale Verbindung verknüpfen
Um eine neue soziale Verbindung zu verknüpfen, solltest du zunächst eine Autorisierungs-URL anfordern:
curl -X POST https://[tenant-id].logto.app/api/verifications/social \
-H 'authorization: Bearer <access_token>' \
-H 'content-type: application/json' \
--data-raw '{"connectorId":"...","redirectUri":"...","state":"..."}'
connectorId
: Die ID des Social Connectors.redirectUri
: Die Redirect-URI nach der Autorisierung der Anwendung durch den Benutzer. Du solltest eine Webseite unter dieser URL hosten und den Callback abfangen.state
: Der State, der nach der Autorisierung der Anwendung durch den Benutzer zurückgegeben wird. Es handelt sich um einen zufälligen String, der zur Verhinderung von CSRF-Angriffen verwendet wird.
In der Antwort findest du eine verificationRecordId
, bewahre sie für die spätere Verwendung auf.
Nachdem der Benutzer die Anwendung autorisiert hat, erhältst du einen Callback an der redirectUri
mit dem Parameter state
. Dann kannst du den Endpunkt POST /api/verifications/social/verify
verwenden, um die soziale Verbindung zu verifizieren.
curl -X POST https://[tenant-id].logto.app/api/verifications/social/verify \
-H 'authorization: Bearer <access_token>' \
-H 'content-type: application/json' \
--data-raw '{"connectorData":"...","verificationRecordId":"..."}'
Das connectorData
sind die Daten, die vom Social Connector nach der Autorisierung der Anwendung durch den Benutzer zurückgegeben werden. Du musst die Query-Parameter aus der redirectUri
auf deiner Callback-Seite extrahieren und sie als JSON im Feld connectorData
übergeben.
Abschließend kannst du den Endpunkt POST /api/my-account/identities
verwenden, um die soziale Verbindung zu verknüpfen.
curl -X POST https://[tenant-id].logto.app/api/my-account/identities \
-H 'authorization: Bearer <access_token>' \
-H 'logto-verification-id: <verification_record_id>' \
-H 'content-type: application/json' \
--data-raw '{"newIdentifierVerificationRecordId":"..."}'
Soziale Verbindung entfernen
Um eine soziale Verbindung zu entfernen, kannst du den Endpunkt DELETE /api/my-account/identities
verwenden.
curl -X DELETE https://[tenant-id].logto.app/api/my-account/identities/[connector_target_id] \
-H 'authorization: Bearer <access_token>' \
-H 'logto-verification-id: <verification_record_id>'
Neuen WebAuthn-Passkey verknüpfen
Denke daran, zuerst MFA und WebAuthn zu aktivieren.
Um diese Methode zu verwenden, musst du das Feld mfa
in den Account Center-Einstellungen aktivieren.
Schritt 0: Füge den Origin deiner Frontend-App zu den zugehörigen Origins hinzu.
Ein Passkey im Browser ist an einen bestimmten Hostnamen (RP ID) gebunden, und nur der Origin der RP ID kann verwendet werden, um einen Passkey zu registrieren oder zu verifizieren. Da deine Frontend-App, die die Anfrage an die Account API sendet, nicht dieselbe ist wie die Logto-Anmeldeseite, musst du den Origin deiner Frontend-App zur Liste der zugehörigen Origins hinzufügen. Dadurch kann deine Frontend-App einen Passkey unter anderen RP IDs registrieren und verifizieren.
Standardmäßig setzt Logto die RP ID auf die Tenant-Domain, z. B. wenn deine Tenant-Domain https://example.logto.app
ist, ist die RP ID example.logto.app
. Wenn du eine eigene Domain verwendest, ist die RP ID die eigene Domain, z. B. bei https://auth.example.com
ist die RP ID auth.example.com
.
Füge nun den Origin deiner Frontend-App zu den zugehörigen Origins hinzu, z. B. wenn der Origin deiner Frontend-App https://account.example.com
ist:
curl -X PATCH https://[tenant-id].logto.app/api/webauthn-connectors \
-H 'authorization: Bearer <access_token>' \
-H 'content-type: application/json' \
--data-raw '{"webauthnRelatedOrigins":["https://account.example.com"]}'
Weitere Informationen zu den zugehörigen Origins findest du in der Related Origin Requests Dokumentation.
Schritt 1: Neue Registrierungsoptionen anfordern.
curl -X POST https://[tenant-id].logto.app/api/verifications/web-authn/registration \
-H 'authorization: Bearer <access_token>' \
-H 'content-type: application/json'
Du erhältst eine Antwort wie:
{
"registrationOptions": "...",
"verificationRecordId": "...",
"expiresAt": "..."
}
Schritt 2: Passkey im lokalen Browser registrieren.
Am Beispiel von @simplewebauthn/browser
kannst du die Funktion startRegistration
verwenden, um den Passkey im lokalen Browser zu registrieren.
import { startRegistration } from '@simplewebauthn/browser';
// ...
const response = await startRegistration({
optionsJSON: registrationOptions, // Die vom Server in Schritt 1 zurückgegebenen Daten
});
// Speichere die Antwort für die spätere Verwendung
Schritt 3: Passkey verifizieren.
curl -X POST https://[tenant-id].logto.app/api/verifications/web-authn/registration/verify \
-H 'authorization: Bearer <access_token>' \
-H 'content-type: application/json' \
--data-raw '{"payload":"...","verificationRecordId":"..."}'
payload
: Die Antwort aus dem lokalen Browser in Schritt 2.verificationRecordId
: Die vom Server in Schritt 1 zurückgegebene Verifizierungsdatensatz-ID.
Schritt 4: Abschließend kannst du den Passkey verknüpfen.
curl -X POST https://[tenant-id].logto.app/api/my-account/mfa-verifications \
-H 'authorization: Bearer <access_token>' \
-H 'logto-verification-id: <verification_record_id>' \
-H 'content-type: application/json' \
--data-raw '{"type":"WebAuthn","newIdentifierVerificationRecordId":"..."}'
verification_record_id
: Eine gültige Verifizierungsdatensatz-ID, die durch die Verifizierung des bestehenden Faktors des Benutzers gewährt wurde. Weitere Details findest du im Abschnitt Eine Verifizierungsdatensatz-ID erhalten.type
: Der Typ des MFA-Faktors, aktuell wird nurWebAuthn
unterstützt.newIdentifierVerificationRecordId
: Die vom Server in Schritt 1 zurückgegebene Verifizierungsdatensatz-ID.
Bestehenden WebAuthn-Passkey verwalten
Um einen bestehenden WebAuthn-Passkey zu verwalten, kannst du den Endpunkt GET /api/my-account/mfa-verifications
verwenden, um aktuelle Passkeys und andere MFA-Verifizierungsfaktoren abzurufen.
curl https://[tenant-id].logto.app/api/my-account/mfa-verifications \
-H 'authorization: Bearer <access_token>'
Die Antwort sieht beispielsweise so aus:
[
{
"id": "...",
"type": "WebAuthn",
"name": "...",
"agent": "...",
"createdAt": "...",
"updatedAt": "..."
}
]
id
: Die ID der Verifizierung.type
: Der Typ der Verifizierung,WebAuthn
für WebAuthn-Passkey.name
: Der Name des Passkeys, optionales Feld.agent
: Der User Agent des Passkeys.
Passkey-Namen aktualisieren:
curl -X PATCH https://[tenant-id].logto.app/api/my-account/mfa-verifications/{verificationId}/name \
-H 'authorization: Bearer <access_token>' \
-H 'logto-verification-id: <verification_record_id>' \
-H 'content-type: application/json' \
--data-raw '{"name":"..."}'
Passkey löschen:
curl -X DELETE https://[tenant-id].logto.app/api/my-account/mfa-verifications/{verificationId} \
-H 'authorization: Bearer <access_token>' \
-H 'logto-verification-id: <verification_record_id>'
Neues TOTP verknüpfen
Denke daran, zuerst MFA und TOTP zu aktivieren.
Um diese Methode zu verwenden, musst du das Feld mfa
in den Account Center-Einstellungen aktivieren.
Schritt 1: TOTP-Secret generieren.
curl -X POST https://[tenant-id].logto.app/api/my-account/mfa-verifications/totp-secret/generate \
-H 'authorization: Bearer <access_token>' \
-H 'content-type: application/json'
Die Antwort sieht beispielsweise so aus:
{
"secret": "..."
}
Schritt 2: TOTP-Secret dem Benutzer anzeigen.
Verwende das Secret, um einen QR-Code zu generieren oder zeige es dem Benutzer direkt an. Der Benutzer sollte es zu seiner Authenticator-App (wie Google Authenticator, Microsoft Authenticator oder Authy) hinzufügen.
Das URI-Format für den QR-Code sollte sein:
otpauth://totp/[Issuer]:[Account]?secret=[Secret]&issuer=[Issuer]
Beispiel:
otpauth://totp/YourApp:user@example.com?secret=JBSWY3DPEHPK3PXP&issuer=YourApp
Schritt 3: TOTP-Faktor binden.
Nachdem der Benutzer das Secret zu seiner Authenticator-App hinzugefügt hat, muss er es verifizieren und an sein Konto binden:
curl -X POST https://[tenant-id].logto.app/api/my-account/mfa-verifications \
-H 'authorization: Bearer <access_token>' \
-H 'logto-verification-id: <verification_record_id>' \
-H 'content-type: application/json' \
--data-raw '{"type":"Totp","secret":"..."}'
verification_record_id
: Eine gültige Verifizierungsdatensatz-ID, die durch die Verifizierung des bestehenden Faktors des Benutzers gewährt wurde. Weitere Details findest du im Abschnitt Eine Verifizierungsdatensatz-ID erhalten.type
: MussTotp
sein.secret
: Das in Schritt 1 generierte TOTP-Secret.
Ein Benutzer kann nur einen TOTP-Faktor gleichzeitig haben. Wenn der Benutzer bereits einen TOTP-Faktor hat, führt der Versuch, einen weiteren hinzuzufügen, zu einem 422-Fehler.
Backup-Codes verwalten
Denke daran, zuerst MFA und Backup-Codes zu aktivieren.
Um diese Methode zu verwenden, musst du das Feld mfa
in den Account Center-Einstellungen aktivieren.
Schritt 1: Neue Backup-Codes generieren:
curl -X POST https://[tenant-id].logto.app/api/my-account/mfa-verifications/backup-codes/generate \
-H 'authorization: Bearer <access_token>' \
-H 'content-type: application/json'
Die Antwort sieht beispielsweise so aus:
{
"codes": ["...", "...", "..."]
}
Schritt 2: Backup-Codes dem Benutzer anzeigen:
Bevor du die Backup-Codes an das Benutzerkonto bindest, musst du sie dem Benutzer anzeigen und ihn anweisen:
- Lade diese Codes sofort herunter oder schreibe sie auf
- Bewahre sie an einem sicheren Ort auf
- Verstehe, dass jeder Code nur einmal verwendet werden kann
- Wisse, dass diese Codes die letzte Rettung sind, falls der Zugriff auf die primären MFA-Methoden verloren geht
Du solltest die Codes in einem klaren, einfach zu kopierenden Format anzeigen und eine Download-Option (z. B. als Textdatei oder PDF) anbieten.
Schritt 3: Backup-Codes an das Benutzerkonto binden:
curl -X POST https://[tenant-id].logto.app/api/my-account/mfa-verifications \
-H 'authorization: Bearer <access_token>' \
-H 'logto-verification-id: <verification_record_id>' \
-H 'content-type: application/json' \
--data-raw '{"type":"BackupCode","codes":["...","...","..."]}'
verification_record_id
: Eine gültige Verifizierungsdatensatz-ID, die durch die Verifizierung des bestehenden Faktors des Benutzers gewährt wurde. Weitere Details findest du im Abschnitt Eine Verifizierungsdatensatz-ID erhalten.type
: MussBackupCode
sein.codes
: Das Array der in Schritt 1 generierten Backup-Codes.
- Ein Benutzer kann nur einen Satz Backup-Codes gleichzeitig haben. Wenn alle Codes verwendet wurden, muss der Benutzer neue Codes generieren und binden.
- Backup-Codes können nicht der einzige MFA-Faktor sein. Der Benutzer muss mindestens einen weiteren MFA-Faktor (wie WebAuthn oder TOTP) aktiviert haben.
- Jeder Backup-Code kann nur einmal verwendet werden.
Vorhandene Backup-Codes anzeigen:
curl https://[tenant-id].logto.app/api/my-account/mfa-verifications/backup-codes \
-H 'authorization: Bearer <access_token>'
Die Antwort sieht beispielsweise so aus:
{
"codes": [
{
"code": "...",
"usedAt": null
},
{
"code": "...",
"usedAt": "2024-01-15T10:30:00.000Z"
}
]
}
code
: Der Backup-Code.usedAt
: Der Zeitstempel, wann der Code verwendet wurde,null
, wenn noch nicht verwendet.