38 lines
710 B
PHP
38 lines
710 B
PHP
<?php
|
|
|
|
namespace Lexik\Bundle\JWTAuthenticationBundle\Helper;
|
|
|
|
/**
|
|
* JWTSplitter.
|
|
*
|
|
* @author Adam Lukacovic <adam@adamlukacovic.sk>
|
|
*
|
|
* @final
|
|
*/
|
|
class JWTSplitter
|
|
{
|
|
private string $header;
|
|
private string $payload;
|
|
private string $signature;
|
|
|
|
/**
|
|
* @var string
|
|
*/
|
|
private $jwt;
|
|
|
|
public function __construct(string $jwt)
|
|
{
|
|
$this->jwt = $jwt;
|
|
[$this->header, $this->payload, $this->signature] = explode('.', $jwt);
|
|
}
|
|
|
|
public function getParts(array $parts = []): string
|
|
{
|
|
if (!$parts) {
|
|
return $this->jwt;
|
|
}
|
|
|
|
return implode('.', array_intersect_key(get_object_vars($this), array_flip($parts)));
|
|
}
|
|
}
|