J'essaie d'interdire plusieurs connexions par le même utilisateur en même temps sur mon site piloté par CakePHP (1.2). Cependant, ce n'est pas aussi simple que je le pensais puisque je n'ai aucune idée de comment obtenir l'information si un utilisateur est déjà connecté ou non. J'utilise le composant Auth de Cake pour authentifier les utilisateurs. Les sessions sont gérées par l'installation php et php stocke les données de session dans des fichiers. Donc, je suppose qu'il n'est pas possible d'accéder aux données de session à partir d'un contrôleur (car, bien sûr, ces fichiers ne sont pas sauvegardés dans le webroot). J'ai pensé à vérifier si un utilisateur est connecté ou non en utilisant un champ de base de données spécial mais il n'y a aucun moyen de savoir si un utilisateur est déconnecté ou non s'il n'utilise pas la méthode de déconnexion, mais ferme simplement son navigateur et Ainsi se termine la session.CakePHP: Vérifiez si l'utilisateur est déjà connecté
Quelqu'un peut-il penser à une autre façon de gérer cela? Je n'ai pas besoin de connaître toutes les données sur chaque utilisateur connecté. La seule chose que je dois savoir est si le nom d'utilisateur donné est connecté pour le moment.
Merci d'avance.
Hé, bat moi à ça. Lorsqu'il est réglé sur haut, CakePHP vérifie déjà l'agent utilisateur (il le hache et le stocke dans le fichier de session, donc pas besoin d'un champ de base de données). Certains utilisateurs sont derrière des serveurs proxy qui utilisent un pool d'adresses IP publiques, donc je ne vérifierais pas les changements d'adresse IP. – deizel
Oh, j'ai oublié de +1. – deizel
Cela semble très bien. Mais la régénération de l'ID de session semble avoir l'effet secondaire que les utilisateurs connectés sont déconnectés au hasard. Au moins, cela ne se produit pas lorsque le niveau security.level est défini sur "medium". Est-ce que je fais quelque chose de mal? – j0ker