From e1906c0607bcabec8c74e23bdc0caf9dcd04eae1 Mon Sep 17 00:00:00 2001 From: Matthew Mitchener Date: Sat, 23 Mar 2024 10:31:36 -0700 Subject: [PATCH] Instance url is no longer required for JWT auth --- src/Omniphx/Forrest/Authentications/OAuthJWT.php | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/Omniphx/Forrest/Authentications/OAuthJWT.php b/src/Omniphx/Forrest/Authentications/OAuthJWT.php index 7bb0a16..a662c35 100644 --- a/src/Omniphx/Forrest/Authentications/OAuthJWT.php +++ b/src/Omniphx/Forrest/Authentications/OAuthJWT.php @@ -6,6 +6,7 @@ use Firebase\JWT\JWT; use Omniphx\Forrest\Client as BaseAuthentication; use Omniphx\Forrest\Interfaces\AuthenticationInterface; +use Omniphx\Forrest\Exceptions\MissingTokenException; class OAuthJWT extends BaseAuthentication implements AuthenticationInterface { @@ -21,12 +22,21 @@ public static function getJWT($iss, $aud, $sub, $privateKey) return JWT::encode($payload, $privateKey, 'RS256'); } + private function getDefaultInstanceURL() + { + if (isset($this->settings['instanceURL']) && !empty($this->settings['instanceURL'])) { + return $this->settings['instanceURL']; + } else { + return $this->credentials['loginURL']; + } + } + public function authenticate($fullInstanceUrl = null) { - $loginUrl = $this->credentials['loginURL']; - $fullInstanceUrl = $fullInstanceUrl ?? $loginUrl . '/services/oauth2/token'; + $fullInstanceUrl = $fullInstanceUrl ?? $this->getDefaultInstanceURL() . '/services/oauth2/token'; $consumerKey = $this->credentials['consumerKey']; + $loginUrl = $this->credentials['loginURL']; $username = $this->credentials['username']; $privateKey = $this->credentials['privateKey'];