Expiration de la session

Cet élément aide les détenteurs d’actifs Web à offrir la fonctionnalité « délai d’expiration de la session et délai d’inactivité ».

Aperçu

Chef du projet : Roch Lambert (@rlambert27)

Objectif

Ce sous-projet aidera les détenteurs d’actifs Web à offrir une fonctionnalité « délai d’expiration de la session et délai d’inactivité ». Lorsqu’un utilisateur demandera une page contenant le module d'extension nécessaire, la session sera lancée. À la fin de la période de temps déterminée, une boîte de dialogue l’avertissant que sa session est sur le point d’expirer apparaîtra. L’utilisateur pourra alors choisir de prolonger sa session en cliquant « OK » ou de la fermer en cliquant « Annuler ». Après une certaine période d’inactivité, une boîte de dialogue avertira l’utilisateur que sa session est sur le point d’expirer. Dans les deux cas, si l’utilisateur n’a pas réagi après un certain délai établi, il sera automatiquement redirigé à la page de fermeture de session lorsqu’il cliquera « OK » ou « Annuler ».

Avantages

  • Les délais peuvent être ajuster dans les paramètres
  • Conformes à WCAG 2.0 AA
  • Approche d'amélioration progressive

Utilisation recommandée

Sur toutes les pages, au besoin.

Mise en oeuvre

Le code que vous êtes autorisé à modifier est :

<span class="wet-boew-sessiontimeout" data-wet-boew='{"ajaxLimiter": 200000, "inactivity": 1200000, "reactionTime": 30000, "sessionalive": 1200000, "logouturl": "./", "refreshOnClick": true, "refreshCallbackUrl": "./"}'></span>

Cela vous permet de configurer l’élément :

  • ajaxLimiter : Ceci est le lapse de temps entre les requêtes AJAX pour actualiser la page de session côté serveur.
  • inactivity : période de temps d'inactivité après laquelle la boîte de dialogue apparaîtra.
  • reactionTime : période de temps dont dispose l'utilisateur pour faire un choix lorsque la boîte de dialogue apparaît.
  • sessionalive : période de temps durant laquelle la session demeure active avant que la boîte de dialogue apparaisse.
  • logouturl : adresse URL à laquelle l’utilisateur est acheminé lorsque la session a expiré.
  • refreshOnClick : Mettre cette option à true ou false aura pour effet d'activer ou désactiver l'actualisation ajax à l'aide du paramètre refreshCallbackUrl.
  • refreshCallbackUrl : l'URL pour effectuer une actualisation ajax : doit retourner true/false.

Le seul paramètre requis est logouturltous les autres champs sont facultatifs. Le code par défaut serait :

<span class="wet-boew-sessiontimeout" data-wet-boew='{"logouturl": "./"'}'></span>

NOTE IMPORTANTE : les paramètres ajaxLimiter, inactivity, reactionTime et sessionAlive sont en millisecondes. Le seule paramètre requis est logouturl. Les paramètres inactivity et sessionalive sont réglés par défaut à 20 minutes avec 30 secondes pour la confirmation dans la boîte de dialogue. La requête Ajax se fera toutes les 2 minutes par défaut en utilisant le paramètre refreshCallbackUrl. L’élément refreshCallbackUrl ne doit pas être une page qui contient aussi une fonctionnalité « délai d’expiration de la session », car cela créerait une boucle; il devrait simplement s’agir d’une page non affichée qui rafraîchit la session.

Si vous avez besoin d’aide pour la conversion, veuillez vous rendre à l’adresse suivante : http://www.calculateme.com/Time/Minutes/ToMilliseconds.htm

NOTE IMPORTANTE : Les paramètres sessionalive et inactivity devraient correspondre à la période de votre session active sur le serveur Web moins le délai associé à reactionTime. Si les délais des paramètres sessionalive et inactivity sont les mêmes que ceux de votre serveur Web et qu’ils ne tiennent pas compte du temps associé au paramètre reactionTime, le serveur mettra fin à la session dès l’apparition de la boîte de dialogue qui permet de la prolonger.

Exemples

Development

Le code pour l'expiration de la session se trouve à plusieurs endroits dans le répertoire source de la BOEW :

Problèmes connus

  • Le délai très court pourrait poser des problèmes à certains groupes de personnes handicapées
  • Ne fonctionne pas si JavaScript est désactivé

Historique des versions