Arborescence des pages

Vous regardez une version antérieure (v. /wiki/pages/viewpage.action?pageId=832569350) de cette page.

afficher les différences afficher l'historique de la page

« Afficher la version précédente Vous regardez la version actuelle de cette page. (v. 3) afficher la version suivante »

Explication du problème

  • l'application crée une session et stocke l'information avant de rediriger vers CAS
  • l'application redirige vers CAS qui demande le mot de passe
  • CAS redirige vers l'application
  • l'utilisateur clique sur le bouton "back"
  • le login CAS se fait sans intervention utilisateur, la page affiche à nouveau l'application. Dans certains cas l'application refuse le ticket qu'il n'attend pas[*]. Et même si cela ne fait pas d'erreur, le "back" n'a rien fait et l'utilisateur se demande bien pourquoi.

Solution

  • sur la mire CAS (formulaire demandant le login & mot de passe), ajouter au <form> :
onsubmit="ignore_on_history_back()"

et dans la page :

function ignore_on_history_back() {
  // on back, do not autolog nor prompt, go back to the app
  try { window.history.replaceState({}, null, location.href.replace('/cas/login', '/cas/authentification-en-cours.html')) } catch (e) {}
}
  • créer une page statique

    authentification-en-cours.html
    <script>
     var isForward = (history.state || {}).isForward;
     try {
       history.replaceState({ isForward: !isForward }, null, null);
     } catch (e) {}
     history.go(isForward ? 1 : -1);
    </script>
    Page temporaire d'authentification. Nous vous redirigeons vers la page précédente... 

    (cf https://cas.univ-paris1.fr/cas/authentification-en-cours.html)


[*] we have this issue with shibboleth-idp that is configured to delegate to CAS




  • Aucune étiquette