Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour à tous,
J'utilise pour le moment la méthode indiqué dans ce thread http://www.z-f.fr/forum/viewtopic.php?id=6561 pour fixer une durée de session d'authentification.
$sess = new Zend_Session_Namespace("autorisation"); $sess->setExpirationSeconds($dureelog); (avec $dureelog défini dans le fichier .ini)
L'ennui, c'est que, normalement, lorsqu'une personne se délogue de l'application, certaines méthodes sont lancées pour "faire le ménage" (détruire la session php, vider des tables temporaires dans la BD parfois, etc).
Or, lorsque c'est la durée de la session qui expire, et bien, la personne est déloguée, mais pas "proprement". Seule la session d'authentification expire (fort logiquement).
Existe-t-il une façon de faire pour gérer une déconnexion / fin de session automatique, en lançant des méthodes lors de cette fin de session ?
Merci.
Dernière modification par gmifsud (16-06-2011 15:08:40)
Hors ligne
C'est une bonne question que tu as là.
Je connais pas de méthode qui peuvent s'exécuter lorsque la session expire. Je crois que c'est plutôt une vérification qui se fait à chaque chargement de page pour voir si le temps est dépassé.
Comme solution alternative, je vérifierais à chaque chargement si ma session est active, si elle ne l'est pas et que d'autres informations sont active (non proprement déloguée comme tu dis) alors j'éxecuterais les fonctions nécessaire.
Sinon, je suis bien interessé à connaitre une autre solution.
Hors ligne
J'ai effectivement mis en place un mécanisme similaire à celui que tu proposes : vérifier si la session est active. Si elle ne l'est pas mais que d'autres informations de session existent, alors lancer un "nettoyage".
J'ai fait ça dans le plugin AccesCheck puisqu'il se lance à chaque appel d'une page.
Cela n'est quand-même pas optimal car ça suppose d'attendre un appel à une page pour que le nettoyage soit lancé...
Hors ligne
Si tu as besoin d'effectuer quelques fonctions de nettoyage avant que le membre ne se loggue à nouveau, tu pourrais imaginer un flag du type "cleanLogout" et lorsque ton user se reconnecte, tu vérifies et appel ta méthode de nettoyage avant l'authentification de ton utilisateur.
Hors ligne