Skip to content

Commit 99f3f12

Browse files
committed
php 8 and laravel 9 updates
1 parent 642d5fa commit 99f3f12

File tree

3 files changed

+19
-41
lines changed

3 files changed

+19
-41
lines changed

composer.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,12 @@
33
"description": "Simple helper package that makes it easy to generate and consume JWT tokens",
44
"type": "library",
55
"require": {
6+
"php": "^8.0",
67
"lcobucci/jwt": "3.2.*|3.3.*",
7-
"illuminate/support": "^5.4|^6.0|^7.0|^8.0"
8+
"illuminate/support": "^5.4|^6.0|^7.0|^8.0|^9.0"
89
},
910
"require-dev": {
10-
"orchestra/testbench": "^5.0",
11+
"orchestra/testbench": "^7.0",
1112
"phpunit/phpunit": "~9.0"
1213
},
1314
"license": "MIT",

src/ParsedToken.php

Lines changed: 15 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -17,26 +17,12 @@
1717
*/
1818
class 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
}

tests/MiddlewareTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ public function testIdFromRouteName()
8585
// Set the jwt id to match our route name
8686
$route->parameters = ['jwt' => JWT::get('my.route')];
8787
$route->action = ['as' => 'my.route'];
88-
$request->setRouteResolver(function() use($route) { return $route; });
88+
$request->setRouteResolver(fn() => $route);
8989

9090
$this->assertEquals("success", $middleware->handle($request, function() { return "success"; }));
9191

0 commit comments

Comments
 (0)