Auth::__invoke()   A
last analyzed

Complexity

Conditions 3
Paths 3

Size

Total Lines 18
Code Lines 10

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 11
CRAP Score 3

Importance

Changes 0
Metric Value
cc 3
eloc 10
c 0
b 0
f 0
nc 3
nop 3
dl 0
loc 18
ccs 11
cts 11
cp 1
crap 3
rs 9.9332
1
<?php
2
3
declare(strict_types=1);
4
5
namespace App\Middleware;
6
7
use Psr\Http\Message\ResponseInterface;
8
use Slim\Http\Request;
9
use Slim\Http\Response;
10
use Slim\Route;
11
12
final class Auth extends Base
13
{
14 34
    public function __invoke(
15
        Request $request,
16
        Response $response,
17
        Route $next
18
    ): ResponseInterface {
19 34
        $jwtHeader = $request->getHeaderLine('Authorization');
20 34
        if (!$jwtHeader) {
21 1
            throw new \App\Exception\AuthException('JWT Token required.', 400);
22
        }
23 33
        $jwt = explode('Bearer ', $jwtHeader);
24 33
        if (!isset($jwt[1])) {
25 1
            throw new \App\Exception\AuthException('JWT Token invalid.', 400);
26
        }
27 32
        $decoded = $this->checkToken($jwt[1]);
28 31
        $object = (array) $request->getParsedBody();
29 31
        $object['decoded'] = $decoded;
30
31 31
        return $next($request->withParsedBody($object), $response);
32
    }
33
}
34