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://2153412396212362.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:f8054b918f9a896c147e7ffdb186e8128609f2a3'
  55.                         ],
  56.                     
  57.                     ]);
  58.                     
  59.                     $response curl_exec($curl);
  60.                     
  61.                     
  62.                     
  63.                     $dataArray json_decode($response,true);
  64.                     
  65.                    
  66.                     
  67.                     
  68.                     if(array_key_exists("error",$dataArray)){
  69.                         
  70.                             
  71.                             
  72.                             $pseudoName "User-".$user->getProfile()->getId();
  73.                             
  74.                             if($user->getProfile()->getPseudoName()){
  75.                                 $pseudoName $user->getProfile()->getPseudoName();
  76.                             }
  77.                             
  78.                             $jsonString '{"avatar":"https://kwl.gebanalysis.cloud/"'.$user->getProfile()->getProfileImage().',uid": "profile-id-'.$user->getProfile()->getId().'","name": "'.$pseudoName.'"}';
  79.                                         
  80.                                         
  81.                             $curlCreate curl_init();
  82.                             curl_setopt_array($curlCreate, [
  83.                                 CURLOPT_URL => "https://2153412396212362.api-eu.cometchat.io/v3/users",
  84.                                 CURLOPT_RETURNTRANSFER => true,
  85.                                 CURLOPT_ENCODING => '',
  86.                                 CURLOPT_MAXREDIRS => 10,
  87.                                 CURLOPT_TIMEOUT => 30,
  88.                                 CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  89.                                 CURLOPT_CUSTOMREQUEST => 'POST',
  90.                                 CURLOPT_POSTFIELDS => $jsonString,
  91.                                 CURLOPT_HTTPHEADER => [
  92.                                     'Content-Type: application/json',
  93.                                     'Accept: application/json',
  94.                                     'Apikey:f8054b918f9a896c147e7ffdb186e8128609f2a3'
  95.                                 ],
  96.                             
  97.                             ]);
  98.                             
  99.                             $responseCreate curl_exec($curlCreate);
  100.                             
  101.                             $dataArrayCreate json_decode($responseCreate,true);
  102.                             
  103.                             
  104.                             
  105.                             
  106.                             $err curl_error($curlCreate);
  107.                     
  108.                              curl_close($curlCreate);
  109.                         
  110.                     }
  111.                     
  112.                     
  113.                     
  114.                     $err curl_error($curl);
  115.                     
  116.                     curl_close($curl);
  117.                 
  118.             
  119.             
  120.             $payload['ip'] = $request->getClientIp();
  121.             
  122.             $profileID null;
  123.             if($user->getProfile()){
  124.                 $profileID $user->getProfile()->getId();
  125.             }
  126.             $payload['profileID'] = $profileID;
  127.             $event->setData($payload);
  128.         
  129.             $header        $event->getHeader();
  130.             $header['cty'] = 'JWT';
  131.         
  132.             $event->setHeader($header);
  133.         }
  134.             
  135.          
  136. }