Français
  • 404-not-found
  • logto-unknown-session
  • authorization-code-flow

Pourquoi il se peut que vous voyiez une erreur 404 lors de la connexion à votre application intégrée à Logto

Avez-vous déjà rencontré une erreur "404 Not Found" lorsque vous avez essayé de vous connecter à une application intégrée à Logto ? Cet article de blog explique pourquoi cela se produit et ce que vous pouvez faire pour l'éviter.

Charles
Charles
Developer

Contexte

Avez-vous déjà essayé de vous connecter à une application qui utilise Logto pour l'authentification et rencontré une erreur "404 not found" ? Certains de vos utilisateurs finaux ont-ils signalé le même problème ?

Capture d'écran de l'erreur 404 session non trouvée Logto

Cela peut se produire lorsque vous accédez directement à la page de connexion (par exemple, https://your-app.com/sign-in) sans passer par le flux de connexion prévu depuis votre application.

Voici pourquoi :

L'importance du flux OIDC

Logto repose sur le protocole OpenID Connect (OIDC) pour une authentification sécurisée. Lorsque vous vous connectez via le flux normal de l'application (par exemple, en cliquant généralement sur un bouton de connexion depuis votre application), l'application initie une communication avec le serveur OIDC de Logto. Cette communication, appelée "demande d'autorisation", est importante car elle réalise diverses validations sur l'appelant en premier, puis établit une session sécurisée entre votre navigateur et le serveur (gérée par des cookies).

Le problème se pose lorsque les utilisateurs naviguent directement vers la page "/sign-in", car cela contourne la logique interne de l'application qui déclenche la demande d'autorisation OIDC. Par conséquent, le serveur ne reconnaît pas votre navigateur comme ayant une session valide, ce qui conduit alors à l'erreur 404.

La solution

Il existe deux principales façons d'éviter ce problème :

Utilisez toujours le bouton de connexion de l'application

Au lieu d'accéder directement à la page "/sign-in", suivez le flux de connexion prévu par l'application. Lorsque vous cliquez sur le bouton "Connexion" dans l'application, cela initie la demande d'autorisation OIDC appropriée et établit la session nécessaire.

Redirigez automatiquement les utilisateurs

Si vous n'avez qu'une seule application dans votre instance Logto, vous pouvez essayer de mettre en œuvre une logique pour intercepter automatiquement les tentatives des utilisateurs d'accéder à la page "/sign-in" sans session valide, et les rediriger vers votre page principale où un bouton de connexion est affiché. Cela ne peut pas être fait par Logto en raison de sa nature "Omni-sign-in", car plusieurs applications peuvent partager le même système d'authentification, et donc lorsque de telles demandes de page surviennent, Logto ne sait pas vers quelle application il doit rediriger.

Réflexions supplémentaires sur l'amélioration de l'expérience

Nous essayons d'améliorer l'expérience utilisateur, en ajoutant au moins des messages utiles sur la page "/unknown-session", expliquant la raison du 404 et en informant les utilisateurs de ce qu'ils doivent faire au lieu d'être confus et désemparés.

Nous pourrions également envisager la mise en œuvre d'autres mesures de sécurité pour atténuer le problème, comme rediriger automatiquement vers l'"URI de redirection de déconnexion" (généralement la page principale de l'application) lorsqu'une seule application est détectée pour l'instance Logto en cours, ou ajouter une configuration supplémentaire pour afficher un message personnalisé dans ce cas.

Conclusion

L'erreur 404 not found (session invalide) sur la page "/sign-in" est généralement causée par un accès direct à l'URL de la page de connexion, ce qui contourne le flux de connexion normal de l'application qui déclenche la demande d'autorisation, et donc aucune session valide (gérée par des cookies) n'est établie.

En comprenant ce flux et son importance, vous pouvez éviter l'erreur et profiter d'une expérience de connexion fluide avec votre application intégrée à Logto.

N'hésitez pas à nous contacter si vous souhaitez partager vos idées.