/** * Get Client Assertion * Generates base64 Url safe client assertion * @param string $get_token_url * @return string */ public function get($getTokenUrl) { $clientAssertionHeader = array('alg' => $this->alg, 'x5t' => Office365::getThumbprint()); $now = $this->now(); $clientAssertionPayload = array('sub' => Office365::getClientId(), 'iss' => Office365::getClientId(), 'jti' => self::nonce(), 'exp' => $this->tenMinutesFromNow($now), 'nbf' => $now, 'aud' => $getTokenUrl); $assertionBlob = $this->getBlob($clientAssertionHeader, $clientAssertionPayload); $signature = $this->getSignature($assertionBlob); $clientAssertion = $assertionBlob . '.' . $signature; return $clientAssertion; }