16 use \Firebase\JWT\JWT;
28 $this->_handler = $handler;
37 protected function _decode($slimRequest) {
39 if ($secret !==
'' && !is_null($jwt = $slimRequest->getQueryParam(
'apiToken'))) {
41 $apiToken = JWT::decode($jwt, $secret, array(
'HS256'));
42 $this->_handler->setApiToken($apiToken);
44 }
catch (Exception $e) {
48 if (is_a($e,
'UnexpectedValueException') || is_a($e,
'DomainException')) {
49 $request = $this->_handler->getRequest();
50 $router = $request->getRouter();
51 $result = $router->handleAuthorizationFailure($request, $e->getMessage());
53 case is_string($result): return $result;
54 case is_a($result,
'JSONMessage'): return $result->getString();
76 public function __invoke($request, $response, $next) {
77 $result = $this->
_decode($request);
78 if ($result !==
true) {
82 $response = $next($request, $response);