Comment faire un eventListener ?

Par Devdeb22, il y a 6 ans


Salut les amis,

Voilà je suis en train de me former sur la gestion des événements sur Symfony.

Jusqu'à maintenant tous se passe bien !

J'ai le code suivant :

Lorsqu'un utilisateur se connecte à l'application, un listerner détecte l’événement de connexion et met à jour le champs last_login_at dans la bdd

Jusqu’à maintenant tous se passe bien.

Le problème apparaît lorsque l'utilisateur souhaite se déconnecter.

En effet à la déconnexion, la méthode onSecurityAuthenticationSuccess du listener est toujours appelé.

Problème une fois déconnecté on ne peut plus récupérer un user (dans la session)

Conséquence : ça bug !

Ce que je voudrait :

C'est pouvoir

Comment puis-je faire ça ?

Voici mon code pour le listerner

public function onSecurityAuthenticationSuccess(AuthenticationEvent $event){ $user = $event->getAuthenticationToken()->getUser(); if ($user) { //dd($user); $user->setLastLoginAt(new \Datetime('now')); $this->em->persist($user); $this->em->flush(); } }

Aucune réponse