Download the PHP package sylvestre/user-session-bundle without Composer
On this page you can find all versions of the php package sylvestre/user-session-bundle. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download sylvestre/user-session-bundle
More information about sylvestre/user-session-bundle
Files in sylvestre/user-session-bundle
Package user-session-bundle
Short Description Advanced JWT multi-device user session management for Symfony applications
License MIT
Informations about the package user-session-bundle
UserSessionBundle
Un bundle Symfony 6+ qui offre une gestion avancée des sessions utilisateur JWT multi-device avec suivi des connexions et suppression.
Pourquoi ce bundle ?
Ce bundle a été créé pour résoudre plusieurs défis courants liés à la gestion des sessions JWT dans les applications Symfony modernes :
Caractéristiques
- 📱 Support multi-device avec fingerprinting
- 🔐 Gestion de sessions JWT sécurisée
- 🔄 Limitation configurable des sessions simultanées
- 📊 Suivi des connexions actives
- 🚫 Suppression automatique des sessions expirées
- ⚡ Intégration simple avec votre système d'authentification existant
1. Gestion Multi-Device
- Permet aux utilisateurs de se connecter depuis plusieurs appareils simultanément
- Garde une trace de chaque session active par appareil
- Limite configurable du nombre de sessions simultanées
2. Sécurité Renforcée
- Détection des appareils via fingerprinting
- Possibilité de révoquer des sessions spécifiques
- Protection contre la réutilisation des tokens révoqués
- Traçabilité complète des connexions
3. Intégration avec JWT
- Fonctionne en complément de LexikJWTAuthenticationBundle
- Ajoute une couche de gestion de session sans compromettre la nature stateless des JWT
- Permet la révocation des tokens JWT (normalement impossible)
4. Suivi des Connexions
- Interface d'administration pour visualiser les sessions actives
- Historique des connexions par utilisateur
- Détection des appareils et navigateurs utilisés
5. Flexibilité
- Configuration simple via YAML
- Événements personnalisables
- Adaptable à différentes stratégies d'authentification
- Système d'entité extensible
Prérequis
- PHP 8.2 ou supérieur
- Symfony 6.x
- Doctrine ORM
- JWT Authentication configuré dans votre application
Installation
-
Installez le bundle via Composer :
-
Activez le bundle dans
config/bundles.php
: - Mettez à jour votre schéma de base de données :
Générez une migration Doctrine :
Vérifiez et appliquez la migration :
Configuration
Dans votre fichier config/packages/user_session.yaml
:
Import des routes
Dans votre config/routes.yaml
, ajoutez :
Vérification de l'installation
Vous pouvez vérifier que le bundle est correctement installé avec les commandes suivantes :
Utilisation
1. Intégration avec votre système d'authentification
Pour intégrer le bundle avec votre système d'authentification existant, vous devez utiliser le service UserSessionManager
pour créer et gérer les sessions utilisateur.
2. Création d'une nouvelle session
3. Gestion des sessions
Sécurité
Bonnes pratiques
-
Device Fingerprinting :
- Personnalisez la méthode
generateDeviceFingerprint()
selon vos besoins - Ajoutez des paramètres supplémentaires pour renforcer l'identification
- Personnalisez la méthode
- Gestion des sessions :
- Implémentez une stratégie de nettoyage des anciennes sessions
- Surveillez les tentatives de connexion suspectes
Personnalisation
Personnalisation des rôles
Option 1 : Surcharge des routes
Option 2 : Configuration de sécurité Symfony
Fingerprint du device
Personnalisez la méthode generateDeviceFingerprint()
dans UserSessionManager
pour améliorer la détection des appareils :
Events
Le bundle émet plusieurs événements que vous pouvez écouter :
UserSessionCreatedEvent
: Lors de la création d'une nouvelle sessionUserSessionDeletedEvent
: Lors de la suppression d'une sessionUserSessionInvalidatedEvent
: Lorsqu'une session est invalidée
Extension du Bundle
Entité Personnalisée (Optionnel)
Si vous souhaitez étendre les fonctionnalités de l'entité UserSession, vous pouvez créer votre propre entité. Voici quelques exemples :
1. Exemple Simple
2. Exemple avec API Platform
3. Configuration
Après avoir créé votre entité personnalisée, configurez le bundle pour l'utiliser :
4. Migration
Générez et appliquez la migration pour votre nouvelle entité :
Dépannage
Problèmes courants
-
Session non reconnue :
- Assurez-vous que la session existe en base de données
- Validez le format de l'UUID de session
- Erreurs de configuration :
- Vérifiez que le bundle est bien enregistré dans
bundles.php
- Validez la configuration dans
user_session.yaml
- Assurez-vous que la base de données est à jour
- Vérifiez que le bundle est bien enregistré dans
Licence
Ce bundle est disponible sous la licence MIT.
All versions of user-session-bundle with dependencies
symfony/framework-bundle Version ^6.0|^7.0
symfony/config Version ^6.4 || ^7.0
symfony/dependency-injection Version ^6.4 || ^7.0
symfony/security-bundle Version ^6.0|^7.0
doctrine/orm Version ^3.0
doctrine/doctrine-bundle Version ^2.10
symfony/uid Version ^6.0|^7.0