parserToken($request); $this->checkToken->checkJwt($token); $this->checkIssuer($token); return $handler->handle( value( static function (ServerRequestPlusInterface $request, UnencryptedToken $token) { return $request->setAttribute('token', $token); }, $request, $token ) ); } /** * @param UnencryptedToken $token * @return void */ abstract public function checkIssuer(UnencryptedToken $token): void; abstract public function getJwt(): JwtInterface; /** * @param ServerRequestInterface $request * @return Token */ protected function parserToken(ServerRequestInterface $request): Token { return $this->getJwt()->parserAccessToken($this->getToken($request)); } /** * @param ServerRequestInterface $request * @return string */ protected function getToken(ServerRequestInterface $request): string { if ($request->hasHeader('Authorization')) { return Str::replace('Bearer ', '', $request->getHeaderLine('Authorization')); } if ($request->hasHeader('token')) { return $request->getHeaderLine('token'); } if (Arr::has($request->getQueryParams(), 'token')) { return $request->getQueryParams()['token']; } return ''; } }