diff --git a/classes/TokenBuilder.php b/classes/TokenBuilder.php index abdb369f1610fe423232f3d0a217689bf334ab98..f848112593eee27e38199afc482e056985f64508 100644 --- a/classes/TokenBuilder.php +++ b/classes/TokenBuilder.php @@ -117,7 +117,24 @@ class TokenBuilder { 'aud' => $audience ); + $conf = $this->getTokenIssuerConfig($audience); + if (property_exists($conf, 'aud')) { + $payload['aud'] = $conf->aud; + } + if (property_exists($conf, 'scope')) { + $payload['scope'] = $conf->scope; + } + return JWT::encode($payload, $keyPair->privateKey, $keyPair->alg, $keyPair->keyId); } + private function getTokenIssuerConfig($audience) { + foreach ($this->locator->config->tokenIssuer->services as $service) { + if ($service->id === $audience) { + return $service; + } + } + throw new \Exception("Unable to find configuration for " . $audience); + } + }