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ètrerefreshCallbackUrl
.refreshCallbackUrl
: l'URL pour effectuer une actualisation ajax : doit retourner true/false.
Le seul paramètre requis est logouturl
tous 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 :
- js/workers/sessiontimeout.js - contient le code JavaScript pour l'expiration de la session
- js/sass/includes/_sessiontimeout.scss - contient le CSS pour l'expiration de la session
- js/sass/includes/_sessiontimeout-ie.scss - contient le CSS spécifique à IE7/8 pour l'expiration de la session
- js/images/sessiontimeout/ - contient les images pour l'expiration de la session
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
- Date de modification :