Symfony 4 - Evenement lors de la connexion

Symfony 4 - Evenement lors de la connexion

Déclenche un evenement lorsqu’un utilisateur se connecte en créant un EventListener !

# config/services.yaml
App\EventListener\LoginListener:
      tags:
        - { name: 'kernel.event_listener', event: 'security.authentication.success' }

<?php
// src/EventListener/LoginListener.php
namespace App\EventListener;

use Doctrine\ORM\EntityManagerInterface;
use App\Entity\User;
use Symfony\Component\Security\Core\Event\AuthenticationEvent;

class LoginListener {
  private $em;

  public function __construct(EntityManagerInterface $em) {
    $this->em = $em;
  }

  public function onSecurityAuthenticationSuccess(AuthenticationEvent $event) {
    $user = $event->getAuthenticationToken()->getUser();

    if ($user instanceof User) {
      $user->setLastLogin(new \Datetime());

      $this->em->persist($user);
      $this->em->flush();
    }
  }
}

22/08/2020