Usage
Your RSA public key must be accessible in the filesystem.
The KeyConfiguration
Use the KeyConfiguration
to let JWKs know what your public key looks like.
$keyConfig = new KeyConfiguration(
'MY_KEY_ID',
'RSA256',
'Use'
);
By default:
KeyId
will be automatically generated per requestAlgorithm
will beRSA256
(can be changed injwks.php
configuration file)Use
will benull
Create a Key from Raw Content
use ShipSaasLaravelJwks\Entities\Key;
$key = Key::fromRaw($content, $keyConfig);
Create a Key using the file path
use ShipSaasLaravelJwks\Entities\Key;
$key = Key::fromFilePath('/var/www/html/key.pub', $keyConfig);
Please use the exact file path.
Resolve JWK
To PHP array
$jwk = $key->toJWK();
$jwk = $key->toArray();
To String (JSON)
$jwkString = (string) $key;
$jwkString = $key->__toString(); // php magic method
Create a KeySet
KeySet contains 1 or multiple keys
use ShipSaasLaravelJwks\Entities\Key;
use ShipSaasLaravelJwks\Entities\KeySet;
$key1 = Key::fromFilePath(...);
$key2 = Key::fromRawContent(...);
$keySet = new KeySet();
$keySet->add($key1);
$keySet->add($key2);
# Resolve
$jwks = $keySet->toArray();
$jwksString = (string) $keySet;
Default JWKs endpoint
We also ship a default endpoint that prepares the configured keys and returns the JWKs content.
Endpoint: auth/jwks
Last updated