Warum du möglicherweise einen 404 siehst, wenn du dich bei deiner Logto-integrierten App anmeldest
Hast du jemals eine "404 Not Found"-Fehlermeldung erhalten, als du versucht hast, dich bei einer Logto-integrierten App anzumelden? Dieser Blogpost erklärt, warum dies passiert und was du tun kannst, um es zu vermeiden.
Hintergrund
Hast du jemals versucht, dich bei einer App anzumelden, die Logto für die Authentifizierung verwendet, und bist auf einen "404 not found"-Fehler gestoßen? Haben einige deiner Endnutzer dasselbe Problem gemeldet?
Dies kann passieren, wenn du direkt auf die Anmeldeseite zugreifst (z. B. https://deine-app.com/sign-in
), ohne den vorgesehenen Anmeldefluss aus deiner Anwendung heraus zu durchlaufen.
Hier ist der Grund:
Die Bedeutung des OIDC-Flows
Logto verlässt sich auf das OpenID Connect (OIDC) Protokoll für eine sichere Authentifizierung. Wenn du dich über den normalen Anwendungsfluss anmeldest (z. B. typischerweise durch Klicken eines Anmeldebuttons in deiner Anwendung), initiiert die Anwendung eine Kommunikation mit Logtos OIDC-Server. Diese Kommunikation, die als „Autorisierungsanfrage“ bezeichnet wird, ist wichtig, da sie zuerst verschiedene Validierungen gegen den Anrufer durchführt und dann eine sichere Sitzung zwischen deinem Browser und dem Server einrichtet (verwaltet durch Cookies).
Das Problem entsteht, wenn Benutzer direkt zur „/sign-in“-Seite navigieren, da dies die interne Logik der Anwendung umgeht, die die OIDC-Autorisierungsanfrage auslöst. Folglich erkennt der Server deinen Browser nicht als mit einer gültigen Sitzung versehen, was dann zum 404-Fehler führt.
Die Lösung
Es gibt zwei Hauptwege, um dieses Problem zu vermeiden:
Verwende immer den Anmeldebutton der App
Anstatt direkt auf die "/sign-in"-Seite zuzugreifen, folge dem vorgesehenen Anmeldefluss der App. Wenn du auf den "Anmelden"-Button innerhalb der App klickst, wird die richtige OIDC-Autorisierungsanfrage initiiert und die notwendige Sitzung eingerichtet.
Automatische Umleitung der Benutzer
Wenn du nur eine Anwendung in deiner Logto-Instanz hast, kannst du versuchen, eine Logik zu implementieren, die Benutzer automatisch abfängt, die ohne gültige Sitzung auf die "/sign-in"-Seite zugreifen, und sie zurück zu deiner Hauptseite leitet, auf der ein Anmeldebutton angezeigt wird. Dies kann von Logto aufgrund seiner "Omni-sign-in"-Natur nicht durchgeführt werden, da mehrere Anwendungen dasselbe Authentifizierungssystem teilen können, und daher Logto nicht weiß, auf welche App es umleiten soll, wenn eine solche Seitenanforderung eingeht.
Zusätzliche Gedanken zur Verbesserung der Erfahrung
Wir versuchen, das Benutzererlebnis zu verbessern, indem wir zumindest hilfreiche Nachrichten auf der "/unknown-session"-Seite hinzufügen, die den Grund für den 404 erklären und den Benutzern mitteilen, was sie stattdessen tun sollen, anstatt verwirrt und ratlos zu sein.
Wir können auch erwägen, andere Sicherheitsmaßnahmen zu implementieren, um das Problem zu mildern, wie zum Beispiel automatische Umleitung zur "Sign-out Umleit-URI" (normalerweise die Hauptseite der Anwendung), wenn es nur eine Anwendung für die aktuelle Logto-Instanz erkannt wurde, oder zusätzliche Konfigurationen hinzuzufügen, um eine benutzerdefinierte Nachricht in einem solchen Fall anzuzeigen.
Fazit
Der 404 not found (ungültige Sitzung) Fehler auf der "/sign-in"-Seite wird normalerweise durch direkten Zugriff auf die Anmeldeseiten-URL verursacht, die den normalen Anmeldefluss der Anwendung umgeht, der die Autorisierungsanfrage auslöst, und daher keine gültige Sitzung (verwaltet durch Cookies) eingerichtet wird.
Indem du diesen Fluss und seine Bedeutung verstehst, kannst du den Fehler vermeiden und ein nahtloses Anmeldeerlebnis mit deiner Logto-integrierten App genießen.
Bitte zögere nicht, uns zu kontaktieren, wenn du deine Ideen teilen möchtest.