src/EventSubscriber/JWTCreatedListener.php line 38

Open in your IDE?
  1. <?php 
  2. // src/App/EventListener/JWTDecodedListener.php
  3. namespace App\EventSubscriber;
  4. use Lexik\Bundle\JWTAuthenticationBundle\Event\JWTDecodedEvent;
  5. use Lexik\Bundle\JWTAuthenticationBundle\Event\JWTCreatedEvent;
  6. use Symfony\Component\HttpFoundation\RequestStack;
  7. use Doctrine\ORM\EntityManagerInterface;
  8. use App\Entity\User;
  9. class JWTCreatedListener{
  10.             
  11.             /**
  12.          * @var RequestStack
  13.          */
  14.         private $requestStack;
  15.         private $entityManager;
  16.         
  17.         /**
  18.          * @param RequestStack $requestStack
  19.          */
  20.         public function __construct(RequestStack $requestStack,EntityManagerInterface $entityManager)
  21.         {
  22.             $this->requestStack $requestStack;
  23.             $this->entityManager $entityManager;
  24.         }
  25.         
  26.         
  27.         /**
  28.          * @param JWTCreatedEvent $event
  29.          *
  30.          * @return void
  31.          */
  32.         public function onJWTCreated(JWTCreatedEvent $event)
  33.         {
  34.             $request $this->requestStack->getCurrentRequest();
  35.          
  36.             $payload       $event->getData();
  37.             $user $this->entityManager->getRepository(User::class)->findOneByEmail($payload['email']);
  38.             
  39.                     $uuid "profile-id-".$user->getProfile()->getId();              
  40.                                                 
  41.                     $curl curl_init();
  42.                     curl_setopt_array($curl, [
  43.                         CURLOPT_URL => "https://247548211a9ed919.api-eu.cometchat.io/v3/users/".$uuid,
  44.                         CURLOPT_RETURNTRANSFER => true,
  45.                         CURLOPT_ENCODING => '',
  46.                         CURLOPT_MAXREDIRS => 10,
  47.                         CURLOPT_TIMEOUT => 30,
  48.                         CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  49.                         CURLOPT_CUSTOMREQUEST => 'GET',
  50.                         //CURLOPT_POSTFIELDS => $jsonString,
  51.                         CURLOPT_HTTPHEADER => [
  52.                             'Content-Type: application/json',
  53.                             'Accept: application/json',
  54.                             'Apikey:7f0e4f8cd1613c00b49ef0f7146868dd6d57099f'
  55.                         ],
  56.                     
  57.                     ]);
  58.                     
  59.                     $response curl_exec($curl);
  60.                     
  61.                     
  62.                     
  63.                     $dataArray json_decode($response,true);
  64.                     
  65.                     
  66.                     if(array_key_exists("error",$dataArray)){
  67.                         
  68.                             
  69.                             
  70.                             $pseudoName "User-".$user->getProfile()->getId();
  71.                             
  72.                             if($user->getProfile()->getPseudoName()){
  73.                                 $pseudoName $user->getProfile()->getPseudoName();
  74.                             }
  75.                             
  76.                             $jsonString '{"uid": "profile-id-'.$user->getProfile()->getId().'","name": "'.$pseudoName.'"}';
  77.                                         
  78.                                         
  79.                             $curlCreate curl_init();
  80.                             curl_setopt_array($curlCreate, [
  81.                                 CURLOPT_URL => "https://247548211a9ed919.api-eu.cometchat.io/v3/users",
  82.                                 CURLOPT_RETURNTRANSFER => true,
  83.                                 CURLOPT_ENCODING => '',
  84.                                 CURLOPT_MAXREDIRS => 10,
  85.                                 CURLOPT_TIMEOUT => 30,
  86.                                 CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  87.                                 CURLOPT_CUSTOMREQUEST => 'POST',
  88.                                 CURLOPT_POSTFIELDS => $jsonString,
  89.                                 CURLOPT_HTTPHEADER => [
  90.                                     'Content-Type: application/json',
  91.                                     'Accept: application/json',
  92.                                     'Apikey:7f0e4f8cd1613c00b49ef0f7146868dd6d57099f'
  93.                                 ],
  94.                             
  95.                             ]);
  96.                             
  97.                             $responseCreate curl_exec($curlCreate);
  98.                             
  99.                             $dataArrayCreate json_decode($responseCreate,true);
  100.                             
  101.                             //dd($dataArrayCreate);
  102.                             
  103.                             
  104.                             $err curl_error($curlCreate);
  105.                     
  106.                              curl_close($curlCreate);
  107.                         
  108.                     }
  109.                     
  110.                     
  111.                     
  112.                     $err curl_error($curl);
  113.                     
  114.                     curl_close($curl);
  115.                 
  116.             
  117.             
  118.             $payload['ip'] = $request->getClientIp();
  119.             
  120.             $profileID null;
  121.             if($user->getProfile()){
  122.                 $profileID $user->getProfile()->getId();
  123.             }
  124.             $payload['profileID'] = $profileID;
  125.             $event->setData($payload);
  126.         
  127.             $header        $event->getHeader();
  128.             $header['cty'] = 'JWT';
  129.         
  130.             $event->setHeader($header);
  131.         }
  132.             
  133.          
  134. }