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

Perché potresti vedere un 404 quando accedi a un'app integrata con Logto

Ti è mai capitato di incontrare un errore "404 Not Found" quando hai provato ad accedere a un'app integrata con Logto? Questo post del blog spiega perché succede e cosa puoi fare per evitarlo.

Charles
Charles
Developer

Smetti di sprecare settimane sull'autenticazione degli utenti
Lancia app sicure più velocemente con Logto. Integra l'autenticazione degli utenti in pochi minuti e concentrati sul tuo prodotto principale.
Inizia ora
Product screenshot

Contesto

Ti è mai capitato di provare ad accedere a un'app che utilizza Logto per l'autenticazione e di imbatterti in un errore "404 not found"? Qualcuno dei tuoi utenti finali ha riportato lo stesso problema?

Schermata errore 404 sessione Logto non trovata

Questo può accadere quando accedi direttamente alla pagina di accesso (ad esempio, https://your-app.com/sign-in) senza passare dal flusso di accesso previsto dall'applicazione.

Ecco perché succede:

L'importanza del flusso OIDC

Logto si basa sul protocollo OpenID Connect (OIDC) per un'autenticazione sicura. Quando effettui l'accesso tramite il normale flusso dell'applicazione (ad esempio, di solito facendo clic su un pulsante di accesso all'interno dell'app), l'applicazione avvia una comunicazione con il server OIDC di Logto. Questa comunicazione, chiamata "richiesta di autorizzazione", è importante perché esegue varie validazioni nei confronti del chiamante e poi stabilisce una sessione sicura tra il tuo browser e il server (gestita tramite cookie).

Il problema si presenta quando gli utenti navigano direttamente verso la pagina "/sign-in", poiché ciò aggira la logica interna dell'applicazione che innesca la richiesta di autorizzazione OIDC. Di conseguenza, il server non riconosce il tuo browser come dotato di una sessione valida, il che porta all'errore 404.

La soluzione

Ci sono due modi principali per evitare questo problema:

Usa sempre il pulsante di accesso dell'app

Invece di accedere direttamente alla pagina "/sign-in", segui il percorso di login previsto fornito dall'applicazione. Quando fai clic sul pulsante "Accedi" all'interno dell'app, viene avviata la corretta richiesta di autorizzazione OIDC e viene stabilita la sessione necessaria.

Reindirizza automaticamente gli utenti

Se hai solo un'applicazione nella tua istanza di Logto, puoi provare a implementare una logica che intercetti automaticamente i tentativi degli utenti di accedere alla pagina "/sign-in" senza una sessione valida e li reindirizzi alla tua pagina principale dove è visualizzato un pulsante di accesso.

Per gestire questa situazione, Logto ha introdotto l'impostazione "URL di reindirizzamento per sessione sconosciuta". Quando imposti questo URL, Logto reindirizzerà automaticamente gli utenti alla pagina specificata invece di mostrare l'errore 404. Ad esempio, potresti reindirizzarli alla homepage della tua app o a una schermata di login personalizzata. Dopo il reindirizzamento, la tua applicazione client dovrebbe avviare un nuovo flusso di accesso.

Per configurarlo, vai nella Logto Console sotto Logto Cloud > Esperienza di accesso > Registrazione e accesso > Opzioni avanzate e inserisci il tuo URL di fallback.

Ad esempio, Logto Cloud imposta questo su https://cloud.logto.io/. Una volta impostato, gli utenti che raggiungono "/sign-in" senza una sessione valida verranno inviati a quell'URL per riavviare l'autenticazione.

Ulteriori idee per migliorare l'esperienza

Stiamo cercando di migliorare l'esperienza utente, almeno aggiungendo messaggi utili alla pagina "/unknown-session", spiegando il motivo del 404 e facendo sapere agli utenti cosa fare invece di lasciarli confusi e spaesati. Ad esempio, Logto supporta l'inserimento di una email di assistenza personalizzata e dell'indirizzo del sito web nelle pagine di errore di accesso. Gli utenti che incontrano un errore vedranno i tuoi dettagli di contatto e potranno chiedere assistenza.

Potremmo anche prendere in considerazione l'implementazione di altre misure di sicurezza per mitigare il problema, come il reindirizzamento automatico alla "Sign-out redirect URI" (di solito la pagina principale dell'applicazione) quando viene rilevata una sola applicazione per l'istanza Logto attuale, oppure l'aggiunta di ulteriori configurazioni per mostrare un messaggio personalizzato in questi casi.

Conclusione

L'errore 404 not found (sessione non valida) sulla pagina "/sign-in" è di solito causato dall'accesso diretto all'URL della pagina di accesso, che aggira il normale flusso di login dell'applicazione che innesca la richiesta di autorizzazione e quindi non viene istituita una sessione valida (gestita tramite cookie).

Capendo questo flusso e la sua importanza, puoi evitare l'errore e goderti un'esperienza di accesso fluida con la tua app integrata con Logto.

Sentiti libero di contattarci se vuoi condividere le tue idee.