Class to implement the JWT interface using the Web Token JWT Framework library from https://web-token.spomky-labs.com. More...
Public Member Functions | |
bool | hasJwt () |
Check if a JWT is defined. | |
bool | isEncrypted () |
Check if a JWT's content is encrypted. | |
bool | load (string $jwtString, ?string $privateKey=null) |
Load a JWT from a string. | |
array | getJweHeaders () |
Get the value of the JWE headers. | |
bool | hasHeader (string $name) |
Check whether a JWT has a header with the specified name. | |
string null | getHeader (string $name, ?string $defaultValue=null) |
Get the value of the header with the specified name. | |
array object null | getHeaders () |
Get the value of the headers. | |
bool | hasClaim (string $name) |
Check whether a JWT has a claim with the specified name. | |
int float string bool array object null | getClaim (string $name, int|float|string|bool|array|object|null $defaultValue=null) |
Get the value of the claim with the specified name. | |
array object null | getPayload () |
Get the value of the payload. | |
bool | verify (?string $publicKey, ?string $jku=null) |
Verify the signature of the JWT. | |
bool | verifySignature (?string &$publicKey, ?string $jku=null) |
Verify the signature of the JWT. | |
Static Public Member Functions | |
static string[] | getSupportedAlgorithms () |
Return an array of supported signature algorithms. | |
static array object null | getLastHeaders () |
Get the value of the headers for the last signed JWT (before any encryption). | |
static array object null | getLastPayload () |
Get the value of the payload for the last signed JWT (before any encryption). | |
static string | sign (array $payload, string $signatureMethod, string $privateKey, ?string $kid=null, ?string $jku=null, ?string $encryptionMethod=null, ?string $publicKey=null) |
Sign the JWT. | |
static string null | generateKey (string $signatureMethod='RS256') |
Generate a new private key in PEM format. | |
static string null | getPublicKey (string $privateKey) |
Get the public key for a private key. | |
static array | getJWKS (string $pemKey, string $signatureMethod, ?string $kid=null) |
Get the public JWKS from a key in PEM format. | |
Public Attributes | |
const | SUPPORTED_ALGORITHMS = ['RS256', 'RS384', 'RS512'] |
Supported signature algorithms. | |
Class to implement the JWT interface using the Web Token JWT Framework library from https://web-token.spomky-labs.com.
|
static |
Generate a new private key in PEM format.
string | $signatureMethod | Signature method |
Implements ceLTIc\LTI\Jwt\ClientInterface.
int float string bool array object null ceLTIc\LTI\Jwt\WebTokenClient::getClaim | ( | string | $name, |
int|float|string|bool|array|object|null | $defaultValue = null ) |
Get the value of the claim with the specified name.
string | $name | Claim name |
int | float | string | bool | array | object | null | $defaultValue | Default value |
Implements ceLTIc\LTI\Jwt\ClientInterface.
References ceLTIc\LTI\Util\logDebug(), verify(), and verifySignature().
Referenced by getHeaders().
string null ceLTIc\LTI\Jwt\WebTokenClient::getHeader | ( | string | $name, |
?string | $defaultValue = null ) |
Get the value of the header with the specified name.
string | $name | Header name |
string | null | $defaultValue | Default value |
Implements ceLTIc\LTI\Jwt\ClientInterface.
Referenced by verify(), and verifySignature().
array object null ceLTIc\LTI\Jwt\WebTokenClient::getHeaders | ( | ) |
Get the value of the headers.
Implements ceLTIc\LTI\Jwt\ClientInterface.
References getClaim(), and hasClaim().
array ceLTIc\LTI\Jwt\WebTokenClient::getJweHeaders | ( | ) |
Get the value of the JWE headers.
Implements ceLTIc\LTI\Jwt\ClientInterface.
|
static |
Get the public JWKS from a key in PEM format.
string | $pemKey | Private or public key in PEM format |
string | $signatureMethod | Signature method |
string | null | $kid | Key ID (optional) |
Implements ceLTIc\LTI\Jwt\ClientInterface.
|
static |
Get the value of the headers for the last signed JWT (before any encryption).
Implements ceLTIc\LTI\Jwt\ClientInterface.
References getPayload().
|
static |
Get the value of the payload for the last signed JWT (before any encryption).
Implements ceLTIc\LTI\Jwt\ClientInterface.
References ceLTIc\LTI\Util\jsonDecode().
array object null ceLTIc\LTI\Jwt\WebTokenClient::getPayload | ( | ) |
Get the value of the payload.
Implements ceLTIc\LTI\Jwt\ClientInterface.
References ceLTIc\LTI\Jwt\Jwt\$leeway, and verifySignature().
Referenced by getLastHeaders().
|
static |
Get the public key for a private key.
string | $privateKey | Private key in PEM format |
Implements ceLTIc\LTI\Jwt\ClientInterface.
|
static |
Return an array of supported signature algorithms.
Implements ceLTIc\LTI\Jwt\ClientInterface.
bool ceLTIc\LTI\Jwt\WebTokenClient::hasClaim | ( | string | $name | ) |
Check whether a JWT has a claim with the specified name.
string | $name | Claim name |
Implements ceLTIc\LTI\Jwt\ClientInterface.
Referenced by getHeaders().
bool ceLTIc\LTI\Jwt\WebTokenClient::hasHeader | ( | string | $name | ) |
Check whether a JWT has a header with the specified name.
string | $name | Header name |
Implements ceLTIc\LTI\Jwt\ClientInterface.
Referenced by verify().
bool ceLTIc\LTI\Jwt\WebTokenClient::hasJwt | ( | ) |
Check if a JWT is defined.
Implements ceLTIc\LTI\Jwt\ClientInterface.
bool ceLTIc\LTI\Jwt\WebTokenClient::isEncrypted | ( | ) |
Check if a JWT's content is encrypted.
Implements ceLTIc\LTI\Jwt\ClientInterface.
bool ceLTIc\LTI\Jwt\WebTokenClient::load | ( | string | $jwtString, |
?string | $privateKey = null ) |
Load a JWT from a string.
string | $jwtString | JWT string |
string | null | $privateKey | Private key in PEM format for decrypting encrypted tokens (optional) |
Implements ceLTIc\LTI\Jwt\ClientInterface.
|
static |
Sign the JWT.
array | $payload | Payload |
string | $signatureMethod | Signature method |
string | $privateKey | Private key in PEM format |
string | null | $kid | Key ID (optional) |
string | null | $jku | JSON Web Key URL (optional) |
string | null | $encryptionMethod | Encryption method (optional) |
string | null | $publicKey | Public key of recipient for content encryption (optional) |
Exception |
Implements ceLTIc\LTI\Jwt\ClientInterface.
bool ceLTIc\LTI\Jwt\WebTokenClient::verify | ( | ?string | $publicKey, |
?string | $jku = null ) |
Verify the signature of the JWT.
string | null | $publicKey | Public key of issuer |
string | null | $jku | JSON Web Key URL of issuer (optional) |
Implements ceLTIc\LTI\Jwt\ClientInterface.
References ceLTIc\LTI\Jwt\Jwt\$allowJkuHeader, getHeader(), and hasHeader().
Referenced by getClaim().
bool ceLTIc\LTI\Jwt\WebTokenClient::verifySignature | ( | ?string & | $publicKey, |
?string | $jku = null ) |
Verify the signature of the JWT.
If a new public key is fetched and used to successfully verify the signature, the value of the publicKey parameter is updated.
string | null | $publicKey | Public key of issuer (passed by reference) |
string | null | $jku | JSON Web Key URL of issuer (optional) |
Implements ceLTIc\LTI\Jwt\ClientInterface.
References getHeader(), and ceLTIc\LTI\Util\jsonDecode().
Referenced by getClaim(), and getPayload().
const ceLTIc\LTI\Jwt\WebTokenClient::SUPPORTED_ALGORITHMS = ['RS256', 'RS384', 'RS512'] |
Supported signature algorithms.