src/EventListener/TokenListener.php line 18

Open in your IDE?
  1. <?php
  2. namespace App\EventListener;
  3. use Symfony\Component\HttpFoundation\Response;
  4. use Symfony\Component\HttpKernel\Event\RequestEvent;
  5. use App\Repository\UsersRepository;
  6. class TokenListener
  7. {
  8.     private $usersRepository;
  9.     public function __construct(UsersRepository $usersRepository)
  10.     {
  11.         $this->usersRepository $usersRepository;
  12.     }
  13.     public function onKernelRequest(RequestEvent $event)
  14.     {
  15.         $request $event->getRequest();
  16.         $path $request->getPathInfo();
  17. //        dump(strpos($path, '/app/user/login') );
  18. //        dump(strpos($path, 'app/user/signup') );
  19.     //    dump(strpos($path, 'app/article/get-home') );
  20.     //    die;
  21.         if (    strpos($path'/app/article') === 0
  22.             || strpos($path'/app/invoice') === 0
  23.             || strpos($path'/app/cart') === 0
  24.             || strpos($path'/app/order') === 0
  25.         ){
  26.             if(strpos($path'/app/invoice/view-invoice/') !== && strpos($path'/app/user/login') !== 0
  27.                 && strpos($path'/app/user/signup') !== && strpos($path'/app/article/get-home') !== 0
  28.                 && strpos($path'/app/user/get-roles') !== 0){
  29.                 $token $request->headers->get('X-Token');
  30.                 if (!$this->isValidToken($token))
  31.                 {
  32.                     $response = new Response('Invalid token'Response::HTTP_UNAUTHORIZED);
  33.                     $event->setResponse($response);
  34.                 }
  35.             }
  36.         }
  37.     }
  38.     public function isValidToken(string $token): bool
  39.     {
  40.         $user $this->usersRepository->findOneBy(['token' => $token]);
  41.         return $user !== null;
  42.     }
  43. }