Page 1 sur 1
Problème déconnexion automatique changement de rôle symfony
Posté : 23 juin 2022, 21:30
par AnonymousX
Bonjour,
Je cherche à empêcher la déconnexion automatique lorsqu'un nouveau rôle est attribué à un utilisateur sur Symfony 6. J'ai lu plusieurs choses mais rien ne fonctionne...
Avez-vous un script ou quelque chose permettant d'éviter ce problème ?
Merci d'avance pour votre aide !
Re: Problème déconnexion automatique changement de rôle symfony
Posté : 24 juin 2022, 12:01
par ynx
Bonjour,
Il y a une discussion à ce sujet sur le dépôt de Symfony :
https://github.com/symfony/symfony/issues/39763
A priori la solution serait, lors du changement de rôle, de créer un nouveau UsernamePasswordToken à mettre à jour dans le TokenStorage.
Re: Problème déconnexion automatique changement de rôle symfony
Posté : 24 juin 2022, 21:31
par AnonymousX
Bonjour et merci pour ta réponse. J'ai déjà vu cette discussion le problème c'est que lorsque que j'utilise la méthode setToken celle-ci nécessite 2 paramètres et dans tout les exemples utilisant cette méthode tout le monde utilise qu'un seul paramètre mais moi impossible de fonctionner...
J'ai du louper quelque chose je ne comprend vraiment pas !
Re: Problème déconnexion automatique changement de rôle symfony
Posté : 25 juin 2022, 09:36
par ynx
Es-tu sûr d'utiliser la méthode setToken du service TokenStorage ? Cette méthode attend un seul paramètre :
https://github.com/symfony/security-cor ... torage.php
Tu dois pouvoir récupérer ce service avec un paramètre typé TokenStorageInterface dans la méthode de ton contrôleur ou dans son constructeur.
Un exemple d'utilisation de ce service dans un contrôleur :
https://github.com/FriendsOfSymfony/FOS ... roller.php
Re: Problème déconnexion automatique changement de rôle symfony
Posté : 25 juin 2022, 12:37
par AnonymousX
Merci beaucoup effectivement je n'utilisais pas la bonne class... Ça marche parfaitement c'est top !
Je profite du sujet (pour ne pas en ouvrir un autre) pour savoir comment faire pour forcer la déconnexion d'un utilisateurs ? Non pas en faisant un redirect sur le path correspondant à la déconnexion mais pouvoir le faire manuellement ? La seule chose que je fais c'est le cookie PHPSESSID mais je me doute que ce n'est pas optimal ni forcément sécurisé. Est-ce qu'il y a une manière de faire ça proprement avec Symfony ?
Re: Problème déconnexion automatique changement de rôle symfony
Posté : 25 juin 2022, 18:17
par ynx
Pour déconnecter manuellement l'utilisateur, tu peux définir le token à la valeur null avec la même méthode setToken() puis faire une redirection.
C'est ce que fait le LogoutListener pour la route logout par défaut :
https://github.com/symfony/symfony/blob ... stener.php
Il y a justement une PR ouverte à ce sujet pour avoir une méthode logout() dans Symfony :
https://github.com/symfony/symfony/pull/41406