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

Miksi saatat nähdä 404-virheen kirjautuessasi Logtoon integroituneeseen sovellukseen

Oletko koskaan kohdannut "404 Not Found" -virhettä, kun yritit kirjautua Logtoon integroituneeseen sovellukseen? Tässä blogikirjoituksessa selitetään, miksi tämä tapahtuu ja mitä voit tehdä välttääksesi sen.

Charles
Charles
Developer

Tausta

Oletko koskaan yrittänyt kirjautua sovellukseen, joka käyttää Logtoa todennukseen, ja kohdannut "404 not found" -virheen? Ovatko jotkut loppukäyttäjäsi raportoineet samasta ongelmasta?

Logto session not found 404 error screenshot

Tämä voi tapahtua, kun siirryt suoraan kirjautumissivulle (esim. https://your-app.com/sign-in) käymättä läpi sovelluksen tarkoittamaa kirjautumisvirtaa.

Tässä syy:

OIDC-virtauksen merkitys

Logto perustuu OpenID Connect (OIDC) -protokollaan turvalliseen todennukseen. Kun kirjaudut sisään normaalin sovellusvirran kautta (esim. yleensä klikkaamalla kirjautumispainiketta sovelluksestasi), sovellus aloittaa viestinnän Logton OIDC-palvelimen kanssa. Tämä viestintä, joka tunnetaan nimellä "valtuutuspyyntö", on tärkeä, koska se tekee ensin erilaisia tarkastuksia soittajalta ja luo sitten turvallisen istunnon selaimesi ja palvelimen välille (hallittuna evästeillä).

Ongelma syntyy, kun käyttäjät navigoivat suoraan "/sign-in"-sivulle, mikä ohittaa sovelluksen sisäisen logiikan, joka käynnistää OIDC-valtuutuspyynnön. Tämän seurauksena palvelin ei tunnista selaintasi, jolla olisi kelvollinen istunto, mikä johtaa 404-virheeseen.

Ratkaisu

On kaksi pääasiallista tapaa välttää tämä ongelma:

Käytä aina sovelluksen kirjautumispainiketta

Sen sijaan, että siirtyisit suoraan "/sign-in"-sivulle, noudata sovelluksen tarjoamaa kirjautumisvirtaa. Kun klikkaat sovelluksessa "Sign in"-painiketta, se aloittaa asianmukaisen OIDC-valtuutuspyynnön ja luo tarvittavan istunnon.

Uudelleenohjaa käyttäjät automaattisesti

Jos sinulla on vain yksi sovellus Logto-instanssissasi, voit yrittää toteuttaa logiikan, joka automaattisesti estää käyttäjäyritykset "/sign-in"-sivulle ilman kelvollista istuntoa ja ohjaa heidät takaisin pääsivullesi, jossa kirjautumispainike on. Tämä ei voi tapahtua Logton toimesta sen "Omni-sign-in"-luonteen vuoksi, koska useat sovellukset voivat jakaa saman todennusjärjestelmän, eikä Logto siksi tiedä mihin sovellukseen sen pitäisi ohjata, kun tällainen sivupyyntö tulee.

Lisäajatuksia käyttökokemuksen parantamiseksi

Yritämme parantaa käyttökokemusta lisäämällä ainakin hyödyllisiä viestejä "/unknown-session" -sivulle, joilla selitetään 404:n syy ja kerrotaan käyttäjille, mitä tehdä sen sijaan, että he olisivat hämmentyneitä ja tietämättömiä.

Saatamme myös harkita muiden turvallisten toimenpiteiden toteuttamista ongelman lieventämiseksi, kuten automaattista uudelleenohjausta "Sign-out redirect URI":iin (yleensä sovelluksen pääsivulle), kun nykyiselle Logto-instanssille havaitaan vain yksi sovellus, tai lisätä lisämäärityksiä näyttämään räätälöityjä viestejä tällaisessa tapauksessa.

Yhteenveto

404 not found (epäkelpo istunto) virhe "/sign-in"-sivulla johtuu yleensä siitä, että kirjautumissivun URL-osoite käytetään suoraan, mikä ohittaa normaalin sovelluksen kirjautumisvirran, joka käynnistää valtuutuspyynnön, eikä näin ollen kelvollista istuntoa (hallittuna evästeillä) ole luotu.

Ymmärtämällä tämän virtauksen ja sen tärkeyden voit välttää virheen ja nauttia saumattomasta kirjautumiskokemuksesta Logtoon integroidussa sovelluksessasi.

Ota rohkeasti yhteyttä, jos haluat jakaa ideoitasi.