private function makeSignedJwt($payload) { $header = array("typ" => "JWT", "alg" => "RS256"); $segments = array(); $segments[] = Postman_Google_Utils::urlSafeB64Encode(json_encode($header)); $segments[] = Postman_Google_Utils::urlSafeB64Encode(json_encode($payload)); $signing_input = implode(".", $segments); $signature = $this->signer->sign($signing_input); $segments[] = Postman_Google_Utils::urlSafeB64Encode($signature); return implode(".", $segments); }
/** * Creates a signed JWT. * @param array $payload * @return string The signed JWT. */ private function makeSignedJwt($payload) { $header = array('typ' => 'JWT', 'alg' => 'RS256'); $payload = json_encode($payload); // Handle some overzealous escaping in PHP json that seemed to cause some errors // with claimsets. $payload = str_replace('\\/', '/', $payload); $segments = array(Postman_Google_Utils::urlSafeB64Encode(json_encode($header)), Postman_Google_Utils::urlSafeB64Encode($payload)); $signingInput = implode('.', $segments); $signer = new Postman_Google_Signer_P12($this->privateKey, $this->privateKeyPassword); $signature = $signer->sign($signingInput); $segments[] = Postman_Google_Utils::urlSafeB64Encode($signature); return implode(".", $segments); }