Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour à tous ;
Je suis actuellement confronté à un petit problème de genie logiciel et j'aimerais avoir votre avis sur la meilleur façon de le résoudre.
J'ai implémenté la fonctionnalité rememberMe sur mon site comme suite:
Première authentification de l'utilisateur
1. Authentification ;
2. Rembember me ? --> Si oui, écriture du nouveau cookie avec une date d'expiration fixée dans le future (2 mois), et surcharge du temps de vie de la session (passage de 24 minutes à deux mois)
Ainsi donc, le cookie présent sur l'ordinateur de l'utilisateur ne va pas expirer avant 2 mois, de même que la session référencée par ce cookie. Je précise que j'utilise la base de données comme support de stockage pour les sessions, ce qui me permet de surcharger le temps de vie à souhait.
Mon problème est le suivant:
Imaginons qu'un mois plus tard, l'utilisateur repasse sur le site. Son cookie et sa session étant toujours valides, il sera automatiquement connecté. Maintenant, quand est-il si entre temps, le compte de cet utilisateur a été suspendu ou supprimé ?
Pour résumer, ma question est : Comment dois-je implémenter la routine qui fera les vérification qui s'imposent et forcera en outre, l'exécution de la méthode forgetMe() si le compte de l'utilisateur n'est plus valide ? Dans un plugin de contrôleur ? Ceci, bien que facile à faire, me paraît bien lourd pour cette seule fonctionnalité.
Je vous remercie d'avance pour vos réponses.
Dernière modification par nuxwin (26-04-2011 19:44:44)
Hors ligne
Normalement tu as des droit d'accès à tes pages, si l'user n'existe plus il à beau être connecté il n'a plus d'accès puisque sont nom d'utilisateur n'existe plus non?
Hors ligne
Bonjour ;
Tu as raison mais le problème ne se situe pas là. Quand l'utilisateur revient sur le site, il est déjà connecté. Pour faire court, mon service d'autorisation ne vérifie que si l'utilisateur courant à le droit d'accéder à une ressource en se basant sur son rôle. Pour rappel, lorsque l'utilisateur revient sur le site, il retrouve sa session dans l'état où il l'avait laissé. J'entends par là que les informations d'authentification seront toujours présente en session (id, username, role)... Ainsi donc, mon service d'autorisation n'y verra que du feu.
Edit:
Une manière simple de faire serait de stocker l'id de l'utilisateur dans la table sessions et de supprimer la session si le compte est suspendu ou supprimé. Maintenant, je suis pas certain que cela soit la meilleur façon d'opérer.
Dernière modification par nuxwin (26-04-2011 20:24:10)
Hors ligne
Je pense également que supprimer la session serait une bonne idée.....
Je vois difficilement comment faire autrement, sinon il faudrait un controle après la phase de login voir si l'user n'est pas suspendu ou supprimer.
Hors ligne