<?php
namespace App\EventListener;
use App\Modules\User\Service\UserService;
use Lexik\Bundle\JWTAuthenticationBundle\Event\JWTAuthenticatedEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Lexik\Bundle\JWTAuthenticationBundle\Events;
class JWTAuthenticatedListener implements EventSubscriberInterface
{
/**
* @var UserService
*/
private $userService;
public function __construct(UserService $userService)
{
$this->userService = $userService;
}
public static function getSubscribedEvents()
{
return [
Events::JWT_AUTHENTICATED => 'onJWTAuthenticated',
];
}
public function onJWTAuthenticated(JWTAuthenticatedEvent $event)
{
$user = $event->getToken()->getUser();
$this->userService->online($user);
}
}