mirror of
				https://github.com/elyby/accounts.git
				synced 2025-05-31 14:11:46 +05:30 
			
		
		
		
	Replace emarref/jwt with lcobucci/jwt
Refactor all JWT-related components Replace RS256 with ES256 as a preferred JWT algorithm
This commit is contained in:
		
							
								
								
									
										74
									
								
								api/components/Tokens/Algorithms/ES256.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										74
									
								
								api/components/Tokens/Algorithms/ES256.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,74 @@ | ||||
| <?php | ||||
| declare(strict_types=1); | ||||
|  | ||||
| namespace api\components\Tokens\Algorithms; | ||||
|  | ||||
| use Lcobucci\JWT\Signer; | ||||
| use Lcobucci\JWT\Signer\Ecdsa\Sha256; | ||||
| use Lcobucci\JWT\Signer\Key; | ||||
|  | ||||
| class ES256 implements AlgorithmInterface { | ||||
|  | ||||
|     /** | ||||
|      * @var string | ||||
|      */ | ||||
|     private $privateKey; | ||||
|  | ||||
|     /** | ||||
|      * @var string|null | ||||
|      */ | ||||
|     private $privateKeyPass; | ||||
|  | ||||
|     /** | ||||
|      * @var string | ||||
|      */ | ||||
|     private $publicKey; | ||||
|  | ||||
|     /** | ||||
|      * @var Key|null | ||||
|      */ | ||||
|     private $loadedPrivateKey; | ||||
|  | ||||
|     /** | ||||
|      * @var Key|null | ||||
|      */ | ||||
|     private $loadedPublicKey; | ||||
|  | ||||
|     /** | ||||
|      * TODO: document arguments | ||||
|      * | ||||
|      * @param string $privateKey | ||||
|      * @param string|null $privateKeyPass | ||||
|      * @param string $publicKey | ||||
|      */ | ||||
|     public function __construct(string $privateKey, ?string $privateKeyPass, string $publicKey) { | ||||
|         $this->privateKey = $privateKey; | ||||
|         $this->privateKeyPass = $privateKeyPass; | ||||
|         $this->publicKey = $publicKey; | ||||
|     } | ||||
|  | ||||
|     public function getAlgorithmId(): string { | ||||
|         return 'ES256'; | ||||
|     } | ||||
|  | ||||
|     public function getSigner(): Signer { | ||||
|         return new Sha256(); | ||||
|     } | ||||
|  | ||||
|     public function getPrivateKey(): Key { | ||||
|         if ($this->loadedPrivateKey === null) { | ||||
|             $this->loadedPrivateKey = new Key($this->privateKey, $this->privateKeyPass); | ||||
|         } | ||||
|  | ||||
|         return $this->loadedPrivateKey; | ||||
|     } | ||||
|  | ||||
|     public function getPublicKey(): Key { | ||||
|         if ($this->loadedPublicKey === null) { | ||||
|             $this->loadedPublicKey = new Key($this->publicKey); | ||||
|         } | ||||
|  | ||||
|         return $this->loadedPublicKey; | ||||
|     } | ||||
|  | ||||
| } | ||||
		Reference in New Issue
	
	Block a user