17
17
*/
18
18
class ParsedToken
19
19
{
20
- /** @var Token */
21
- protected $ token ;
20
+ protected bool $ isValid = false ;
22
21
23
- /** @var bool */
24
- protected $ isValid = false ;
22
+ public function __construct ( protected Token $ token )
23
+ {}
25
24
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
40
26
{
41
27
return new static (
42
28
(new Parser ())->parse ($ jwt )
@@ -53,7 +39,7 @@ public static function fromString($jwt)
53
39
* @throws JwtExpiredException
54
40
* @throws JwtValidationException
55
41
*/
56
- public function validate ($ validationInput , $ signingKey = null )
42
+ public function validate ($ validationInput , $ signingKey = null ): ParsedToken
57
43
{
58
44
$ this ->validateRequiredClaims ();
59
45
$ this ->validateExpiration ();
@@ -70,10 +56,9 @@ public function validate($validationInput, $signingKey = null)
70
56
*
71
57
* @param $validationInput
72
58
* @param null $signingKey
73
- *
74
59
* @return bool
75
60
*/
76
- public function isValid ($ validationInput , $ signingKey = null )
61
+ public function isValid ($ validationInput , $ signingKey = null ): bool
77
62
{
78
63
try {
79
64
$ this ->validate ($ validationInput , $ signingKey );
@@ -87,7 +72,7 @@ public function isValid($validationInput, $signingKey = null)
87
72
/**
88
73
* @throws JwtValidationException
89
74
*/
90
- protected function validateRequiredClaims ()
75
+ protected function validateRequiredClaims (): void
91
76
{
92
77
if (!$ this ->token ->hasClaim ('exp ' )) {
93
78
throw new JwtValidationException ("Token expiration is missing " , $ this ->token );
@@ -105,7 +90,7 @@ protected function validateRequiredClaims()
105
90
/**
106
91
* @throws JwtExpiredException
107
92
*/
108
- protected function validateExpiration ()
93
+ protected function validateExpiration (): void
109
94
{
110
95
// Yes this will be validated in the `validateData` loop, however I like having a dedicated error message
111
96
// for this quite-common scenario
@@ -119,7 +104,7 @@ protected function validateExpiration()
119
104
*
120
105
* @throws JwtValidationException
121
106
*/
122
- protected function validateData (ValidationData $ validationData )
107
+ protected function validateData (ValidationData $ validationData ): void
123
108
{
124
109
foreach ($ this ->getValidatableClaims () as $ claim ) {
125
110
if (!$ claim ->validate ($ validationData )) {
@@ -133,7 +118,7 @@ protected function validateData(ValidationData $validationData)
133
118
*
134
119
* @throws JwtValidationException
135
120
*/
136
- protected function verifySignature ($ signingKey = null )
121
+ protected function verifySignature ($ signingKey = null ): void
137
122
{
138
123
if (!$ this ->token ->verify (new Sha256 (), $ signingKey ?? JWTFacade::getSigningKey ())) {
139
124
throw new JwtValidationException ("JWT signature is invalid " , $ this ->token );
@@ -143,7 +128,7 @@ protected function verifySignature($signingKey = null)
143
128
/**
144
129
* @return \Generator
145
130
*/
146
- protected function getValidatableClaims ()
131
+ protected function getValidatableClaims (): \ Generator
147
132
{
148
133
foreach ($ this ->token ->getClaims () as $ claim ) {
149
134
if ($ claim instanceof Validatable) {
@@ -157,7 +142,7 @@ protected function getValidatableClaims()
157
142
*
158
143
* @return ValidationData
159
144
*/
160
- protected function buildValidationData ($ validationInput )
145
+ protected function buildValidationData ($ validationInput ): ValidationData
161
146
{
162
147
if (is_string ($ validationInput )) {
163
148
$ validationData = new ValidationData ();
@@ -175,20 +160,12 @@ protected function buildValidationData($validationInput)
175
160
return $ validationData ;
176
161
}
177
162
178
- /**
179
- * @return array
180
- */
181
- public function toArray ()
163
+ public function toArray (): array
182
164
{
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 ());
186
166
}
187
167
188
- /**
189
- * @return array
190
- */
191
- public function getPayload ()
168
+ public function getPayload (): array
192
169
{
193
170
return array_diff_key ($ this ->toArray (), array_flip (['jti ' ,'iss ' ,'aud ' ,'sub ' ,'iat ' ,'nbf ' ,'exp ' ]));
194
171
}
0 commit comments