1717 */
1818class ParsedToken
1919{
20- /** @var Token */
21- protected $ token ;
20+ protected bool $ isValid = false ;
2221
23- /** @var bool */
24- protected $ isValid = false ;
22+ public function __construct ( protected Token $ token )
23+ {}
2524
26- /**
27- * @param Token $token
28- */
29- public function __construct (Token $ token )
30- {
31- $ this ->token = $ token ;
32- }
33-
34- /**
35- * @param string $jwt
36- *
37- * @return ParsedToken
38- */
39- public static function fromString ($ jwt )
25+ public static function fromString ($ jwt ): ParsedToken
4026 {
4127 return new static (
4228 (new Parser ())->parse ($ jwt )
@@ -53,7 +39,7 @@ public static function fromString($jwt)
5339 * @throws JwtExpiredException
5440 * @throws JwtValidationException
5541 */
56- public function validate ($ validationInput , $ signingKey = null )
42+ public function validate ($ validationInput , $ signingKey = null ): ParsedToken
5743 {
5844 $ this ->validateRequiredClaims ();
5945 $ this ->validateExpiration ();
@@ -70,10 +56,9 @@ public function validate($validationInput, $signingKey = null)
7056 *
7157 * @param $validationInput
7258 * @param null $signingKey
73- *
7459 * @return bool
7560 */
76- public function isValid ($ validationInput , $ signingKey = null )
61+ public function isValid ($ validationInput , $ signingKey = null ): bool
7762 {
7863 try {
7964 $ this ->validate ($ validationInput , $ signingKey );
@@ -87,7 +72,7 @@ public function isValid($validationInput, $signingKey = null)
8772 /**
8873 * @throws JwtValidationException
8974 */
90- protected function validateRequiredClaims ()
75+ protected function validateRequiredClaims (): void
9176 {
9277 if (!$ this ->token ->hasClaim ('exp ' )) {
9378 throw new JwtValidationException ("Token expiration is missing " , $ this ->token );
@@ -105,7 +90,7 @@ protected function validateRequiredClaims()
10590 /**
10691 * @throws JwtExpiredException
10792 */
108- protected function validateExpiration ()
93+ protected function validateExpiration (): void
10994 {
11095 // Yes this will be validated in the `validateData` loop, however I like having a dedicated error message
11196 // for this quite-common scenario
@@ -119,7 +104,7 @@ protected function validateExpiration()
119104 *
120105 * @throws JwtValidationException
121106 */
122- protected function validateData (ValidationData $ validationData )
107+ protected function validateData (ValidationData $ validationData ): void
123108 {
124109 foreach ($ this ->getValidatableClaims () as $ claim ) {
125110 if (!$ claim ->validate ($ validationData )) {
@@ -133,7 +118,7 @@ protected function validateData(ValidationData $validationData)
133118 *
134119 * @throws JwtValidationException
135120 */
136- protected function verifySignature ($ signingKey = null )
121+ protected function verifySignature ($ signingKey = null ): void
137122 {
138123 if (!$ this ->token ->verify (new Sha256 (), $ signingKey ?? JWTFacade::getSigningKey ())) {
139124 throw new JwtValidationException ("JWT signature is invalid " , $ this ->token );
@@ -143,7 +128,7 @@ protected function verifySignature($signingKey = null)
143128 /**
144129 * @return \Generator
145130 */
146- protected function getValidatableClaims ()
131+ protected function getValidatableClaims (): \ Generator
147132 {
148133 foreach ($ this ->token ->getClaims () as $ claim ) {
149134 if ($ claim instanceof Validatable) {
@@ -157,7 +142,7 @@ protected function getValidatableClaims()
157142 *
158143 * @return ValidationData
159144 */
160- protected function buildValidationData ($ validationInput )
145+ protected function buildValidationData ($ validationInput ): ValidationData
161146 {
162147 if (is_string ($ validationInput )) {
163148 $ validationData = new ValidationData ();
@@ -175,20 +160,12 @@ protected function buildValidationData($validationInput)
175160 return $ validationData ;
176161 }
177162
178- /**
179- * @return array
180- */
181- public function toArray ()
163+ public function toArray (): array
182164 {
183- return array_map (function ($ claim ) {
184- return (string ) $ claim ;
185- }, $ this ->token ->getClaims ());
165+ return array_map (fn ($ claim ) => (string ) $ claim , $ this ->token ->getClaims ());
186166 }
187167
188- /**
189- * @return array
190- */
191- public function getPayload ()
168+ public function getPayload (): array
192169 {
193170 return array_diff_key ($ this ->toArray (), array_flip (['jti ' ,'iss ' ,'aud ' ,'sub ' ,'iat ' ,'nbf ' ,'exp ' ]));
194171 }
0 commit comments