En travaillant sur une application utilisant Node.js et Express, je trouvais un problème intéressant et déroutant dans mes tests UX. L'application avait des paramètres de session pour "maxAge: 24 heures" et "éphémère: vrai" - mais je trouvais que ni l'un ni l'autre n'était vrai, ma session semblait toujours disponible sauf si je me déconnectais.
Une petite recherche a confirmé que, au moins avec la session express, ces 2 paramètres ne fonctionnent pas ensemble. Des recherches plus approfondies révèlent que dans le monde UX, les sessions éphémères et expirantes sont comme l'huile et l'eau, par exemple: quel est le but d'avoir une session qui expire si vous allez la tuer à la fermeture du navigateur et vice-versa. On m'a dit que ce serait une expérience utilisateur déroutante de faire les deux.
Maintenant, j'essaie de déterminer quelle serait la meilleure expérience utilisateur? Je me rends compte que cela peut dépendre de l'application. Mon application est une interface de gestion de base de données simple. Les utilisateurs se connectent, peuvent gérer les tables dans une base de données et c'est tout.
Dois-je mettre un maxAge sur la session et les expirer pour une activité inactive, ou expirer la session uniquement lorsque le navigateur se ferme? Je suppose qu'une courte expiration d'âge après une période de temps, couvre également le navigateur fermé. D'un autre côté, un utilisateur peut devenir inactif pendant un certain temps, tout en laissant le navigateur ouvert, avec l'intention d'y revenir. Quel scénario fournit le meilleur UX utilisateur final qui serait le moins déroutant?
Personnellement, j'envisagerais de retourner votre question, car elle concerne moins l'UX et plus ce qui est la considération appropriée pour la sécurité de l'application. Cela dépendra de la sensibilité des données contenues dans votre application.
S'il se trouve dans les limites acceptables du système, les sessions d'application persistent également pendant une période donnée (dans votre cas, 24 heures), il sera toujours plus préférable pour les utilisateurs de ne pas avoir à se connecter constamment à plusieurs reprises chaque fois qu'ils rouvrent leur navigateur.
Dans cette situation cependant - dans la mesure où il s'agit d'un domaine biaisé UX pour recueillir l'opinion - la sécurité de votre application est presque plus un facteur important à prendre en considération.
Considérez les mauvais acteurs et leurs cas d'utilisation pour votre application:
L'utilisateur se connecte au kiosque Web d'un hôtel, fait certaines choses, oublie de se déconnecter et ne ferme pas le navigateur. Le mauvais acteur peut venir et continuer cette session. C'est essentiellement pourquoi les sessions et les délais d'expiration existent.
Mal implémentée, l'expiration de session est appliquée exactement de la même manière partout - même si vous accédez au système à partir du même ordinateur et de la même adresse IP que vous avez tous les deux jours.