Commit d4244e4f authored by Mat's avatar Mat

case history et case register utilisent la même fonction private getUser

parent 861afebd
...@@ -11,6 +11,7 @@ namespace SocketBundle\Services; ...@@ -11,6 +11,7 @@ namespace SocketBundle\Services;
use Lexik\Bundle\JWTAuthenticationBundle\Security\Authentication\Token\JWTUserToken; use Lexik\Bundle\JWTAuthenticationBundle\Security\Authentication\Token\JWTUserToken;
use Ratchet\ConnectionInterface; use Ratchet\ConnectionInterface;
use Ratchet\MessageComponentInterface; use Ratchet\MessageComponentInterface;
use SocketBundle\Entity\Message;
use SocketBundle\Entity\User; use SocketBundle\Entity\User;
use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\DependencyInjection\ContainerInterface;
...@@ -121,22 +122,25 @@ class ChatHub implements MessageComponentInterface ...@@ -121,22 +122,25 @@ class ChatHub implements MessageComponentInterface
switch ($dataPath) { switch ($dataPath) {
case '/register': case '/register':
// importe le service qui permet de traiter le token // on a créé une fonction private pour partager
$tokenManager = $this->container->get('lexik_jwt_authentication.jwt_manager'); $username = $this->getUser($token);
// payload, ce sont les données chiffrées à l'intérieur du token // from c'est le client qui vient d'envoyer un message
$payload = $tokenManager->decode($token); // sauvegarde sa 'connection Interface'
$this->clients[$username] = $from;
// récupère le username dans le payload du token
$username = $payload['username']; $this->refreshUsers();
// from c'est le client qui vient d'envoyer un message
// sauvegarde sa 'connection Interface'
$this->clients[$username] = $from;
$this->refreshUsers();
break; break;
case '/history':
$dest = $data->dest;
$username = $this->getUser($token);
$messageRepo = $this->getDoctrine()->getManager()->getRepository(Message::class);
$messageRepo->
break;
} }
} }
...@@ -181,4 +185,21 @@ class ChatHub implements MessageComponentInterface ...@@ -181,4 +185,21 @@ class ChatHub implements MessageComponentInterface
return $this->container->get('doctrine'); return $this->container->get('doctrine');
} }
/**
* @param $token
* @return mixed
*/
private function getUser($token)
{
// importe le service qui permet de traiter le token
$tokenManager = $this->container->get('lexik_jwt_authentication.jwt_manager');
// payload, ce sont les données chiffrées à l'intérieur du token
$payload = $tokenManager->decode($token);
// retourne le username qui est dans le payload du token
return $username = $payload['username'];
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment