Abmeldung
Die Abmeldung in Logto umfasst zwei Ebenen:
- Logto-Sitzungsabmeldung: Beendet die zentrale Anmeldesitzung unter der Logto-Domain.
- App-Abmeldung: Löscht den lokalen Sitzungsstatus und die Tokens in deiner Client-Anwendung.
Um besser zu verstehen, wie Sitzungen in Logto funktionieren, siehe Sitzungen.
Abmeldemechanismen
1) Nur clientseitige Abmeldung
Die Client-App löscht ihre eigene lokale Sitzung und Tokens (ID- / Zugangs- / Auffrischungstokens). Dies meldet den Benutzer nur aus dem lokalen Zustand dieser App ab.
- Die Logto-Sitzung kann weiterhin aktiv sein.
- Andere Apps unter derselben Logto-Sitzung können weiterhin SSO nutzen.
2) Sitzung bei Logto beenden (globale Abmeldung in der aktuellen Logto-Implementierung)
Um die zentrale Logto-Sitzung zu löschen, leitet die App den Benutzer zum End-Sitzungs-Endpunkt weiter, zum Beispiel:
https://{your-logto-domain}/oidc/session/end
Im aktuellen Verhalten des Logto SDK:
signOut()leitet zu/session/endweiter.- Dann geht es zu
/session/end/confirm. - Das Standardbestätigungsformular sendet automatisch
logout=true.
Als Ergebnis wird die aktuelle SDK-Abmeldung als globale Abmeldung behandelt.
- Globale Abmeldung: Widerruft die zentrale Logto-Sitzung.
Was passiert während der globalen Abmeldung
Während der globalen Abmeldung:
- Die zentrale Logto-Sitzung wird widerrufen.
- Zugehörige App-Gewährungen werden je nach Autorisierungsstatus der App behandelt:
- Wenn
offline_accessnicht gewährt ist, werden zugehörige Gewährungen widerrufen. - Wenn
offline_accessgewährt ist, werden Gewährungen nicht durch End-Sitzung widerrufen.
- Wenn
- Bei
offline_access-Fällen bleiben Auffrischungstokens und Gewährungen gültig, bis die Gewährung abläuft.
Gewährungslebensdauer und offline_access-Auswirkung
- Die Standard-Logto-Gewährung TTL beträgt 180 Tage.
- Wenn
offline_accessgewährt ist, widerruft die End-Sitzung diese App-Gewährung standardmäßig nicht. - Die mit dieser Gewährung verbundene Auffrischungstoken-Kette kann fortgesetzt werden, bis die Gewährung abläuft (oder explizit widerrufen wird).
Föderierte Abmeldung: Back-Channel-Logout
Für Konsistenz über Apps hinweg unterstützt Logto Back-Channel-Logout.
Wenn sich ein Benutzer von einer App abmeldet, kann Logto alle Apps, die an derselben Sitzung teilnehmen, benachrichtigen, indem es ein Logout-Token an die registrierte Back-Channel-Logout-URI jeder App sendet.
Wenn Is session required in den Back-Channel-Einstellungen der App aktiviert ist, enthält das Logout-Token sid, um die Logto-Sitzung zu identifizieren.
Typischer Ablauf:
- Benutzer initiiert Abmeldung von einer App.
- Logto verarbeitet die End-Sitzung und sendet Logout-Token(s) an die registrierte Back-Channel-Logout-URI(s).
- Jede App validiert das Logout-Token und löscht ihre eigene lokale Sitzung / Tokens.
Abmeldemethoden in Logto SDKs
- SPA und Web:
client.signOut()löscht den lokalen Token-Speicher und leitet zur Logto-End-Sitzungs-Endpoint weiter. Du kannst eine Post-Logout-Redirect-URI angeben. - Native (einschließlich React Native / Flutter): löscht normalerweise nur den lokalen Token-Speicher. Sitzungslose Webansicht bedeutet, dass kein persistentes Logto-Browser-Cookie gelöscht werden muss.
Für native Anwendungen, die keine sitzungslose Webansicht unterstützen oder die emphasized-Einstellungen nicht erkennen (Android-App mit React Native oder Flutter SDK), kannst du den Benutzer dazu zwingen, sich erneut anzumelden, indem du den Parameter prompt=login in der Autorisierungsanfrage übergibst.
Erzwinge erneute Authentifizierung bei jedem Zugriff
Für hochsichere Aktionen füge prompt=login in Auth-Anfragen ein, um SSO zu umgehen und die Eingabe von Anmeldedaten jedes Mal zu erzwingen.
Wenn offline_access angefordert wird (um Auffrischungstokens zu erhalten), füge auch consent, prompt=login consent hinzu.
Typische kombinierte Einstellung:
prompt=login consent
FAQs
Ich erhalte keine Back-Channel-Logout-Benachrichtigungen.
- Stelle sicher, dass die Back-Channel-Logout-URI korrekt im Logto-Dashboard registriert ist.
- Stelle sicher, dass deine App einen aktiven Anmeldestatus für denselben Benutzer / Sitzungs-Kontext hat.
Verwandte Ressourcen
Verständnis des OIDC-Back-Channel-Logouts.