diff --git a/src/JWT.php b/src/JWT.php index e9d75639..e098835f 100644 --- a/src/JWT.php +++ b/src/JWT.php @@ -184,7 +184,7 @@ public static function decode( /** * Converts and signs a PHP array into a JWT string. * - * @param array $payload PHP array + * @param array|null $payload PHP array. null will result in passing an empty string to the payload segment * @param string|resource|OpenSSLAsymmetricKey|OpenSSLCertificate $key The secret key. * @param string $alg Supported algorithms are 'ES384','ES256', 'ES256K', 'HS256', * 'HS384', 'HS512', 'RS256', 'RS384', and 'RS512' @@ -197,7 +197,7 @@ public static function decode( * @uses urlsafeB64Encode */ public static function encode( - array $payload, + ?array $payload, $key, string $alg, string $keyId = null, @@ -213,7 +213,7 @@ public static function encode( } $segments = []; $segments[] = static::urlsafeB64Encode((string) static::jsonEncode($header)); - $segments[] = static::urlsafeB64Encode((string) static::jsonEncode($payload)); + $segments[] = $payload === null ? '' : static::urlsafeB64Encode((string) static::jsonEncode($payload)); $signing_input = \implode('.', $segments); $signature = static::sign($signing_input, $key, $alg);