Waarom je een 404-melding kunt zien bij het inloggen op je Logto-geïntegreerde app
Ben je ooit een "404 Not Found" fout tegengekomen toen je probeerde in te loggen op een Logto-geïntegreerde app? Deze blogpost legt uit waarom dit gebeurt en wat je kunt doen om het te voorkomen.
Achtergrond
Heb je ooit geprobeerd in te loggen op een app die Logto gebruikt voor authenticatie en kwam je toen een "404 not found" fout tegen? Hebben je eindgebruikers hetzelfde probleem gemeld?
Dit kan gebeuren wanneer je rechtstreeks toegang zoekt tot de inlogpagina (bijv. https://your-app.com/sign-in
) zonder gebruik te maken van de beoogde inlogroute vanuit je applicatie.
Hier is waarom:
Het belang van de OIDC-flow
Logto vertrouwt op het OpenID Connect (OIDC) protocol voor veilige authenticatie. Wanneer je inlogt via de normale applicatiestroom (bijv. meestal door op een inlogknop van je applicatie te klikken), initieert de applicatie communicatie met Logto’s OIDC-server. Deze communicatie, de "autorisatieverzoek" genoemd, is belangrijk omdat het eerst verschillende validaties uitvoert ten opzichte van de beller en vervolgens een beveiligde sessie tussen je browser en de server opzet (beheerd door cookies).
Het probleem ontstaat wanneer gebruikers rechtstreeks naar de “/sign-in” pagina navigeren, omdat dit de interne logica van de applicatie omzeilt die het OIDC autorisatieverzoek triggert. Daardoor herkent de server je browser niet als een geldige sessie, wat leidt tot de 404-fout.
De oplossing
Er zijn twee hoofdmanieren om dit probleem te vermijden:
Gebruik altijd de inlogknop van de app
In plaats van rechtstreeks toegang te zoeken tot de "/sign-in" pagina, volg je de bedoelde inlogroute die de applicatie biedt. Wanneer je op de "Inloggen" knop binnen de app klikt, initieert het het juiste OIDC autorisatieverzoek, en stelt daarmee de noodzakelijke sessie in.
Gebruikers automatisch doorverwijzen
Als je slechts één applicatie in je Logto-instantie hebt, kun je proberen logica te implementeren om automatisch pogingen van gebruikers om de "/sign-in" pagina zonder een geldige sessie te onderscheppen en ze terug te leiden naar je hoofdpagina waar een inlogknop wordt weergegeven. Dit kan niet door Logto gedaan worden vanwege zijn "Omni-sign-in" aard, omdat meerdere applicaties hetzelfde authenticatiesysteem kunnen delen, en daardoor weet Logto niet naar welke app het zou moeten doorverwijzen wanneer een dergelijke paginaverzoek binnenkomt.
Extra gedachten over verbetering van de ervaring
We proberen de gebruikerservaring te verbeteren, door in ieder geval nuttige berichten toe te voegen aan de "/unknown-session" pagina, waarin de reden voor de 404 wordt uitgelegd en de gebruikers laten weten wat ze moeten doen in plaats van verward en radeloos te zijn.
We overwegen ook andere veilige maatregelen te implementeren om het probleem te beperken, zoals automatisch doorverwijzen naar "Sign-out redirect URI" (meestal de hoofdpagina van de applicatie) wanneer er maar één applicatie wordt gedetecteerd voor de huidige Logto-instantie, of extra configuratie toevoegen om een aangepast bericht in een dergelijk geval te tonen.
Conclusie
De 404 niet gevonden (ongeldige sessie) fout op de "/sign-in" pagina wordt meestal veroorzaakt door rechtstreeks toegang te zoeken tot de inlogpagina URL, wat de normale applicatie inlogroute omzeilt die het autorisatieverzoek triggert, en daardoor geen geldige sessie (beheerd door cookies) wordt vastgesteld.
Door deze flow en zijn belang te begrijpen, kun je de fout vermijden en genieten van een naadloze inlogervaring met je Logto-geïntegreerde app.
Neem gerust contact met ons op als je je ideeën wilt delen.