Development #25523
utilisation de django.contrib.messages pour les erreurs d'authentification
0%
Description
Pour le moment django-mellon propose ses pages en cas d'échec d'authentification, pourrait utiliser django.contrib.messages.
Fichiers
Historique
Mis à jour par Frédéric Péters il y a presque 6 ans
- Fichier 0001-views-use-django.contrib.messages-to-pass-error-mess.patch 0001-views-use-django.contrib.messages-to-pass-error-mess.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
Sous forme de settings pour ne pas imposer django.contrib.messages (mais je suggérerai côté publik qu'on passe ça à True).
Mis à jour par Frédéric Péters il y a presque 6 ans
- Statut changé de Solution proposée à Rejeté
Sauf qu'en fait à part combo en tant que portail usagers les applications n'ont pas de page publique où afficher le message.
Mis à jour par Benjamin Dauvergne il y a presque 6 ans
Oui c'est exactement pour éviter les boucles de redirection que ça a été fait. Coté authentic le problème a été corrigé via le middleware DisplayMessageBeforeRedirect
; je ne sais pas si c'est une solution qui a ta faveur mais pour moi c'est la plus sûre, quand on laisse un message et qu'on part vers un autre domaine, il faut afficher celui-ci.
Une possibilité serait d'arriver à détecter si la redirection qui aura lieu va pointer sur une page du service qui est protégé par login_required ou pas, ce qui pour une application classique doit être possible mais difficile pour combo puisque c'est géré dans la vue des pages et pas par un décorateur qu'on pourrait détecter.
Actuellement le souci principal avec la gestion des retours en erreur sur SSO c'est le cas RequestDenied qui vient d'un clic sur le bouton Annuler coté authentic et qui devrait résulter en un message plus clair du style "L'authentification a été refusée, cliquer ici pour continuer" et pas une erreur un peu cryptique.