From 2df95c4852d008f9b1ed2d7d23c4b30e2e1eeb65 Mon Sep 17 00:00:00 2001 From: drkthunder02 Date: Sat, 7 Mar 2026 18:00:17 -0600 Subject: [PATCH] testing --- .env.example | 3 +- .../Socialite/EveOnline/Claim/AzpChecker.php | 50 +++++++++++++++ .../Socialite/EveOnline/Claim/NameChecker.php | 33 ++++++++++ .../EveOnline/Claim/OwnerChecker.php | 33 ++++++++++ .../Socialite/EveOnline/Claim/ScpChecker.php | 54 ++++++++++++++++ .../Claim/SubEveCharacterChecker.php | 36 +++++++++++ .../EveOnline/EveOnlineExtendSocialite.php | 18 ++++++ .../EveOnline/Header/TypeChecker.php | 63 +++++++++++++++++++ 8 files changed, 289 insertions(+), 1 deletion(-) create mode 100644 app/Providers/Socialite/EveOnline/Claim/AzpChecker.php create mode 100644 app/Providers/Socialite/EveOnline/Claim/NameChecker.php create mode 100644 app/Providers/Socialite/EveOnline/Claim/OwnerChecker.php create mode 100644 app/Providers/Socialite/EveOnline/Claim/ScpChecker.php create mode 100644 app/Providers/Socialite/EveOnline/Claim/SubEveCharacterChecker.php create mode 100644 app/Providers/Socialite/EveOnline/EveOnlineExtendSocialite.php create mode 100644 app/Providers/Socialite/EveOnline/Header/TypeChecker.php diff --git a/.env.example b/.env.example index 45b0059..235b66e 100644 --- a/.env.example +++ b/.env.example @@ -66,8 +66,9 @@ VITE_APP_NAME="${APP_NAME}" EVEONLINE_CLIENT_ID=replace_this_with_eve_developer_client_id EVEONLINE_SECRET_KEY=replace_this_with_eve_developer_secret_key -EVEONLINE_REDIRECT_URI=replace_this_with_eve_developer_redirect_uri +EVEONLINE_REDIRECT_URL=replace_this_with_eve_developer_redirect_uri JWT_SECRET=replace_this_with_a_long_random_secret JWT_TTL=3600 JWT_ISSUER="${APP_NAME}" + diff --git a/app/Providers/Socialite/EveOnline/Claim/AzpChecker.php b/app/Providers/Socialite/EveOnline/Claim/AzpChecker.php new file mode 100644 index 0000000..2bde1f0 --- /dev/null +++ b/app/Providers/Socialite/EveOnline/Claim/AzpChecker.php @@ -0,0 +1,50 @@ +client_id = $client_id; + } + + /** + * {@inheritdoc} + */ + public function checkClaim($value) : void { + if(!is_string($value)) { + throw new InvalidClaimException('"azp" must a string.', self::NAME, $value); + } + + if ($value !== $this->client_id) + throw new InvalidClaimException('"azp" must match the originating application.', self::NAME, $value); + } + + /** + * {@inheritdoc} + */ + public function supportedClaim(): string { + return self::NAME; + } +} + +?> \ No newline at end of file diff --git a/app/Providers/Socialite/EveOnline/Claim/NameChecker.php b/app/Providers/Socialite/EveOnline/Claim/NameChecker.php new file mode 100644 index 0000000..c316f0d --- /dev/null +++ b/app/Providers/Socialite/EveOnline/Claim/NameChecker.php @@ -0,0 +1,33 @@ + \ No newline at end of file diff --git a/app/Providers/Socialite/EveOnline/Claim/OwnerChecker.php b/app/Providers/Socialite/EveOnline/Claim/OwnerChecker.php new file mode 100644 index 0000000..cd026a2 --- /dev/null +++ b/app/Providers/Socialite/EveOnline/Claim/OwnerChecker.php @@ -0,0 +1,33 @@ + \ No newline at end of file diff --git a/app/Providers/Socialite/EveOnline/Claim/ScpChecker.php b/app/Providers/Socialite/EveOnline/Claim/ScpChecker.php new file mode 100644 index 0000000..fc3b119 --- /dev/null +++ b/app/Providers/Socialite/EveOnline/Claim/ScpChecker.php @@ -0,0 +1,54 @@ +scopes = $scopes; + } + + /** + * {@inheritdoc} + */ + public function checkClaim($value): void + { + if (! is_array($value) && ! is_string($value)) + throw new InvalidClaimException('"scp" must be an array of scopes.', self::NAME, $value); + + if (! is_array($value)) + $value = [$value]; + + if (! empty(array_diff($this->scopes, $value))) + throw new InvalidClaimException('"scp" contains scopes which does not match requested ones or miss some requested scopes.', self::NAME, $value); + } + + /** + * {@inheritdoc} + */ + public function supportedClaim(): string + { + return self::NAME; + } +} + +?> \ No newline at end of file diff --git a/app/Providers/Socialite/EveOnline/Claim/SubEveCharacterChecker.php b/app/Providers/Socialite/EveOnline/Claim/SubEveCharacterChecker.php new file mode 100644 index 0000000..03744a7 --- /dev/null +++ b/app/Providers/Socialite/EveOnline/Claim/SubEveCharacterChecker.php @@ -0,0 +1,36 @@ + \ No newline at end of file diff --git a/app/Providers/Socialite/EveOnline/EveOnlineExtendSocialite.php b/app/Providers/Socialite/EveOnline/EveOnlineExtendSocialite.php new file mode 100644 index 0000000..ec4cf5c --- /dev/null +++ b/app/Providers/Socialite/EveOnline/EveOnlineExtendSocialite.php @@ -0,0 +1,18 @@ +extendSocialite('eveonline', Provider::class); + } +} + +?> \ No newline at end of file diff --git a/app/Providers/Socialite/EveOnline/Header/TypeChecker.php b/app/Providers/Socialite/EveOnline/Header/TypeChecker.php new file mode 100644 index 0000000..fb6f37f --- /dev/null +++ b/app/Providers/Socialite/EveOnline/Header/TypeChecker.php @@ -0,0 +1,63 @@ +supported_types = $supported_types; + $this->protected_header = $protected_header; + } + + /** + * {@inheritdoc} + */ + public function checkHeader($value): void + { + if (! is_string($value)) + throw new InvalidHeaderException('"typ" must be a string.', self::HEADER_NAME, $value); + + if (! in_array($value, $this->supported_types, true)) + throw new InvalidHeaderException('Unsupported type.', self::HEADER_NAME, $value); + } + + /** + * {@inheritdoc} + */ + public function supportedHeader(): string + { + return self::HEADER_NAME; + } + + /** + * {@inheritdoc} + */ + public function protectedHeaderOnly(): bool + { + return $this->protected_header; + } +} + +?> \ No newline at end of file