2017-03-21 1 views
0

Je travaille sur un projet où le client souhaite que différents utilisateurs aient des durées de vie de session différentes (et non, pensez-y, durée de vie des cookies).Définir la durée de vie de la session Symfony lors de la connexion en fonction des attributs utilisateur

Le client le souhaite en fonction des «droits» (sorte d'autorisations similaires) détenus par chaque utilisateur. Par exemple, la durée de vie de session par défaut peut être de 15 minutes.
Certains utilisateurs peuvent avoir des durées de vie de session d'une heure.
Les sessions de gestionnaire n'expirent pas (durée de vie = 0).

Je n'ai pas réussi à trouver un moyen de le faire dans le système de sécurité/session de Symfony.

Je pourrais implémenter quelque chose de moi-même et l'injecter quelque part dans le chemin de l'événement, mais cela me semble vraiment maladroit et comme cela brise l'esprit de Symfony.

Suggestions? TIA.

Répondre

0

Je pense qu'il y a un chemin à parcourir avec votre problème.

Vous pouvez implémenter un stockage de session personnalisé, voici explanation how to do it.

En détails, vous implémenterez la classe NativeSessionStorage, qui est fournie avec la méthode setOptions. Cette méthode prend comme tableau param de toutes les valeurs de php.ini liées à la configuration de session. Si vous l'intégrez dans votre logique métier, cela résoudra votre problème.