Svenska
  • 404-not-found
  • logto-unknown-session
  • authorization-code-flow

Varför du kan se en 404 när du loggar in i din Logto-integrerade app

Har du någonsin stött på ett "404 Not Found"-fel när du försökte logga in i en Logto-integrerad app? Detta blogginlägg förklarar varför detta händer och vad du kan göra för att undvika det.

Charles
Charles
Developer

Sluta slösa veckor på användarautentisering
Lansera säkra appar snabbare med Logto. Integrera användarautentisering på några minuter och fokusera på din kärnprodukt.
Kom igång
Product screenshot

Bakgrund

Har du någonsin försökt logga in i en app som använder Logto för autentisering och stött på ett "404 not found"-fel? Har några av dina slutanvändare rapporterat samma problem?

Logto session not found 404 error screenshot

Detta kan hända när du går direkt till inloggningssidan (t.ex. https://your-app.com/sign-in) utan att använda den avsedda inloggningsflödet via din applikation.

Här är anledningen:

Vikten av OIDC-flödet

Logto bygger på OpenID Connect (OIDC) protokollet för säker autentisering. När du loggar in via det normala applikationsflödet (t.ex. oftast genom att klicka på en inloggningsknapp i din applikation), initierar applikationen en kommunikation med Logtos OIDC-server. Denna kommunikation, kallad "authorisation request", är viktig eftersom den gör olika valideringar mot uppringaren först och sedan etablerar en säker session mellan din webbläsare och servern (hanteras via cookies).

Problemet uppstår när användare navigerar direkt till "/sign-in"-sidan, eftersom detta kringgår applikationens interna logik som utlöser OIDC authorisation request. Följaktligen känner inte servern igen din webbläsare som att den har en giltig session, vilket leder till 404-felet.

Lösningen

Det finns två huvudsakliga sätt att undvika detta problem:

Använd alltid appens inloggningsknapp

I stället för att direkt gå till "/sign-in"-sidan, följ det avsedda inloggningsflödet som applikationen erbjuder. När du klickar på "Logga in"-knappen i appen, initieras en korrekt OIDC authorisation request och den nödvändiga sessionen etableras.

Omdirigera användare automatiskt

Om du bara har en applikation i din Logto-instans kan du försöka implementera logik för att automatiskt snappa upp försök från användare att nå "/sign-in"-sidan utan giltig session och omdirigera dem tillbaka till din huvudsida där en inloggningsknapp visas.

För att hantera detta introducerade Logto inställningen “Unknown session redirect URL”. När du anger denna URL kommer Logto automatiskt att omdirigera användare till den angivna sidan istället för att visa 404-felet. Du kan exempelvis omdirigera dem till din apps startsida eller en anpassad inloggningssida. Efter omdirigeringen bör din klientapplikation initiera ett nytt inloggningsflöde.

För att konfigurera detta, gå till Logto Console under Logto Cloud > Sign-in experience > Sign-up and sign-in > Advanced options och ange din fallback-URL.

Till exempel har Logto Cloud denna satt till https://cloud.logto.io/. När detta är inställt kommer användare som går till /sign-in utan giltig session skickas till den URL:en för att starta om autentiseringen.

Ytterligare tankar kring förbättring av användarupplevelsen

Vi försöker förbättra användarupplevelsen genom att åtminstone visa hjälpsamma meddelanden på sidan "/unknown-session", som förklarar anledningen till 404-felet och informerar användarna om vad de ska göra istället för att bli förvirrade. Logto stödjer till exempel anpassad supportmail och webbadress för felmeddelandesidor vid inloggning. Användare som stöter på ett fel kommer då att se dina kontaktuppgifter och kan höra av sig för hjälp.

Vi kan även fundera på att införa andra säkra åtgärder för att mildra problemet, såsom att automatiskt omdirigera till "Sign-out redirect URI" (vanligtvis applikationens huvudsida) när endast en applikation upptäcks för den aktuella Logto-instansen, eller lägga till ytterligare konfiguration som visar ett anpassat meddelande i sådana fall.

Slutsats

404 not found (ogiltig session)-felet på sidan "/sign-in" orsakas vanligtvis av att man direkt går till inloggningssidan, vilket kringgår det normala inloggningsflödet i applikationen som utlöser authorisation request. Därmed upprättas ingen giltig session (hanterad av cookies).

Genom att förstå detta flöde och dess betydelse kan du undvika felet och njuta av en smidig inloggningsupplevelse i din Logto-integrerade app.

Hör gärna av dig till oss om du vill dela med dig av dina idéer.