From 6449094b7823d313bf1324d0f7d3b109e2048184 Mon Sep 17 00:00:00 2001 From: Irie Aoi Date: Thu, 3 Dec 2020 16:52:10 +0900 Subject: [PATCH] =?UTF-8?q?JWT=E3=81=8C=E3=81=A4=E3=81=84=E3=81=A6?= =?UTF-8?q?=E3=81=84=E3=82=8B=E3=81=A8=E3=81=8D=E3=81=A0=E3=81=91expires?= =?UTF-8?q?=5Fat=E3=82=92=E4=BB=98=E4=B8=8E=E3=81=99=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/MetadataResolver/CienResolver.php | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/app/MetadataResolver/CienResolver.php b/app/MetadataResolver/CienResolver.php index 47d0e44..9931ac4 100644 --- a/app/MetadataResolver/CienResolver.php +++ b/app/MetadataResolver/CienResolver.php @@ -27,18 +27,17 @@ class CienResolver extends MetadataResolver $res = $this->client->get($url); $metadata = $this->ogpResolver->parse((string) $res->getBody()); - // 画像URLのJWTから有効期限を拾う + // JWTがついていれば画像URLのJWTから有効期限を拾う parse_str(parse_url($metadata->image, PHP_URL_QUERY), $params); - if (empty($params['jwt'])) { - throw new \RuntimeException('Parameter "jwt" not found. Image=' . $metadata->image . ' Source=' . $url); - } - $parts = explode('.', $params['jwt']); - if (count($parts) !== 3) { - throw new \RuntimeException('Invalid jwt. Image=' . $metadata->image . ' Source=' . $url); - } - $payload = json_decode(base64_decode(str_replace(['-', '_'], ['+', '/'], $parts[1])), true); + if (isset($params['jwt'])) { + $parts = explode('.', $params['jwt']); + if (count($parts) !== 3) { + throw new \RuntimeException('Invalid jwt. Image=' . $metadata->image . ' Source=' . $url); + } + $payload = json_decode(base64_decode(str_replace(['-', '_'], ['+', '/'], $parts[1])), true); - $metadata->expires_at = Carbon::createFromTimestamp($payload['exp']); + $metadata->expires_at = Carbon::createFromTimestamp($payload['exp']); + } return $metadata; }